请原谅我的简单问题,但由于ifelse是矢量化的,不应该遍历我的数据帧行吗?
例如,当我尝试
时 df <- data.frame(col1=c("a", "b", "c"),
col2=c("d", "e", "f"),
col3=c("g", "h", "i"), stringsAsFactors=FALSE)
ifelse('a' %in% df, 1, 0)
我的结果是0。
不应该是1,0,0?
在这种情况下,ifelse
的重点是什么?我可以以某种方式使用此函数来遍历我的数据帧吗?
答案 0 :(得分:1)
如果您尝试迭代行而不是列:
apply(df,1, function(y){ ifelse('a' %in% y, 1, 0)})
如果您正在迭代列,那么lapply
将起作用:
lapply(df, function(y){ ifelse('a' %in% y, 1, 0)})
(如果您要查找数据框中没有相同行索引和列索引的元素,则差异会更明显。)