这是我的问题。我有两个数据帧,df1和df2。我希望将df1中名为issp
的列添加到df2中名为sp
的列所使用的值的函数中。 df1和df2共有一个名为loc
的列,但它在df2中重复了很多次(df2中的~90k行,df1中的5k行)。
我们的想法是通过向列issp提供值1来识别df1中包含specie sp的位置。
这是我使用的脚本:
for (i in (1:length(df2$loc)) {
if (df2[i, "sp"]==1) {
df1(which[df1$loc==df2[i, "loc"]],)$issp = 1
}
}
它没有工作,R发回给我以下错误:
Error in `*tmp*`[df1[, "loc"] == df2[i, "loc"]] :
object of type 'closure' is not subsettable`
答案 0 :(得分:1)
更好的方法
#Get indices of sp in df2 that are 1
df2.sp.idx <-which(df2$sp ==1)
df1$issp <-NA
df1$issp[which(df1$loc %in% df2$loc[df2.sp.idx])] <-1
答案 1 :(得分:0)
您遇到语法错误:
df1(which[df1$loc==df2[i, "loc"]],)$issp = 1
应该是
df1[which(df1$loc==df2[i, "loc"]),]$issp = 1