我正在尝试应用适用于数据帧每一行的操作。以下是代码。
for(i in 1:nrow(df)){
df$final[i] <- alignfile[alignfile$Response == df$value[i],]$Aligned
}
它基本上是从“alignfile”数据框执行vlookup,并在数据框“df”中使用“value”列的成功vlookup创建一个新列。
如何使用apply系列函数替换此操作,以便我可以摆脱使循环变慢的循环。
寻找建议。请随时提供更多说明。
谢谢
答案 0 :(得分:-1)
你没有提供可重复的例子,所以我的答案是一粒盐, 我认为在这种情况下你根本不需要使用for循环(在大多数情况下使用R)并且都不需要应用函数。我认为这个问题可以通过以下方式用ifelse轻松解决:
df$final <- ifelse(alignfile$Response==df$value, 1, 0)
如果final
列的当前单元格中的值等于当前单元格中的值,则会在df
数据框的alignfile$Response
列中放置一个df$value
列。这假定alignfile
和df
具有相同的行数(从您提供的代码中显示)。