Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:搜索多行&;列以匹配条件列表,然后添加具有二分法结果的新列_R - Fatal编程技术网

R:搜索多行&;列以匹配条件列表,然后添加具有二分法结果的新列

R:搜索多行&;列以匹配条件列表,然后添加具有二分法结果的新列,r,R,问题:具有数十列的超大数据集。如何搜索列列表和其中的所有行,如果它们符合条件,则创建一个新列,向该行添加二分法变量。通常会使用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

问题:具有数十列的超大数据集。如何搜索列列表和其中的所有行,如果它们符合条件,则创建一个新列,向该行添加二分法变量。通常会使用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,对于第1行中的j:allrows,ifelse(row=list,col5=1,col5=0),下一步

谢谢

可能是您需要的

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$col5
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