Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.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,我有以下数据帧: > df1 var1 var2 var3 1 ac bc bc 2 bc bc cc 3 dc ec dc 4 gc gc gc 我从上面的df1中得到了一个子数据帧(4行中只剩下2行): 我想把df2的数字转换成r(r=2,3)。 此外,我想向df1添加一个新列,该列将通过1指示该行存在于df2中。 最终df1将包括以下内容: > df1 var1 var2 var3 df2 1 ac bc b

我有以下数据帧:

> df1
  var1 var2 var3
1   ac   bc   bc
2   bc   bc   cc
3   dc   ec   dc
4   gc   gc   gc
我从上面的df1中得到了一个子数据帧(4行中只剩下2行):

我想把df2的数字转换成r(
r=2,3
)。 此外,我想向df1添加一个新列,该列将通过1指示该行存在于df2中。 最终df1将包括以下内容:

> df1
  var1 var2 var3 df2
1   ac   bc   bc  0
2   bc   bc   cc  1
3   dc   ec   dc  1
4   gc   gc   gc  0

我该怎么做?

我们可以使用%中的
%来比较'df1'和'df2'的行名。我们得到一个逻辑向量,它可以通过
+
包装而强制为二进制格式

 df1$newcol <- +(rownames(df1) %in% rownames(df2))
 df1
 #  var1 var2 var3 newcol
 #1   ac   bc   bc      0
 #2   bc   bc   cc      1
 #3   dc   ec   dc      1
 #4   gc   gc   gc      0
 df1$newcol <- +(rownames(df1) %in% rownames(df2))
 df1
 #  var1 var2 var3 newcol
 #1   ac   bc   bc      0
 #2   bc   bc   cc      1
 #3   dc   ec   dc      1
 #4   gc   gc   gc      0
intersect(rownames(df1), rownames(df2))
#[1] "2" "3"