问题:包含数十列的超大数据集。如何搜索列列表及其中的所有行,如果它们符合条件,请创建一个向行添加二分类变量的新列。通常会使用Excel,但尺寸太大。
例
col1 col2 col3 col4
1 2 3 4
1 2 5 6
3 3 3 3
1 1 1 2
2 3 4 1
如果这些列中的任何一列 (col1-4) 和其中的任何行与数字列表匹配,例如 List:1、2、3,然后添加新的列 (col5),如果匹配,则添加 1,如果不匹配,则添加 0。 重复无关紧要 - 如果出现一个或多个列表条件,则返回的值为 1。
潜在的解决方案理念对于 col1:col4 中的 i,对于 row1:allrows 中的 j,ifelse(row=list, col5=1, col5=0),next。
谢谢!
也许你需要
df$col5 <- (apply(df, 1, function(x)
!any(!table(factor(x[x %in% v1], levels=v1)))))+0L
df
# col1 col2 col3 col4 col5
#1 1 2 3 4 1
#2 1 2 5 6 0
#3 3 3 3 3 0
#4 1 1 1 2 0
#5 2 3 4 1 1
数据
df <- structure(list(col1 = c(1L, 1L, 3L, 1L, 2L), col2 = c(2L, 2L,
3L, 1L, 3L), col3 = c(3L, 5L, 3L, 1L, 4L), col4 = c(4L, 6L, 3L,
2L, 1L)), .Names = c("col1", "col2", "col3", "col4"), class =
"data.frame", row.names = c(NA, -5L))
v1 <- 1:3