【发布时间】:2019-02-12 21:12:06
【问题描述】:
我有一个包含 3 列的数据表,如下所示:
dt <- data.table(
col1 = c("id1","id1","id1","id6","id3","id3"),
col2 = c("A", "B", "C", "D", "E", "F"),
col3 = c("AA", "BB", "CC", "DD", "EE", "FF"))
col 1 中的值也是字符,并且
我需要遍历此列中的每一行。如果它们相同,则保留最后一个,并从最后两列中检索该位置的相应值。例如,对于id1,我将只保留第三个值并从col2 和CC 从col3 检索C。
如果有唯一的行,只需按原样检索col2 和col3。
我需要的输出应该是:
col1 col2 col3
id1 C CC
id6 D DD
id3 F FF
我尝试了类似下面的方法并得到“如果需要 TRUE/FALSE 的 if ,,, 缺失值出错。
for (i in nrow(dt)) {
if (dt[i,1]!=dt[i+1,1]){
dt[i, 2] = dt[i,2]
}
else {
dt[i,2] <- dt$QUESTION
}
}
关于如何解决这个问题的任何想法?我不必坚持使用数据表
谢谢
【问题讨论】:
-
几个编码错误。在您的
for循环中,您必须编写1:nrow(dt)以便i迭代一个向量。目前i只有6个。另外,你的数据表中没有QUESTION列
标签: r