使用 %in% 后如何引用多个数据框和列?
How do you refer to multiple dataframes and columns after using %in%?
我有 3 个数据框。我需要删除行名不存在于所有三个数据框中的所有行。我没有对行进行转置、合并、拆分和重新标记,而是在两个数据帧的情况下使用它:
df1 = df1[rownames(df1) %in% rownames(df2), ]
df2 = df2[rownames(df2) %in% rownames(df1), ]
这样做会使 df1 删除所有未出现在第二个数据集中的行,反之亦然。
但是我如何为 3 或 4 个数据集执行此操作?我需要这样的东西:
df1 = df1[rownames(df1) %in% c(rownames(df2), rownames(df3)), ]
但这似乎使它删除了 df2 和 df3 中都不存在的行,而我需要删除 df2 中不存在的行以及 df3 中不存在的任何行。
例如,如果:
df1 有三行,行名分别为 x1、x2 和 x3
df2 有行 x2、x3、x4
df3 有 x3、x4、x5 行
三者唯一共同的行是 x3,因此我希望从三个数据框中删除所有其他行。
也许您要找的只是 &
?
df1 <- data.frame(a = c(1,2,3), row.names = c("x1","x2","x3"))
df2 <- data.frame(b = c(2,3,4), row.names = c("x2","x3","x4"))
df3 <- data.frame(c = c(3,4,5), row.names = c("x3","x4","x5"))
df1[rownames(df1) %in% rownames(df2) & rownames(df1) %in% rownames(df3),
, drop = F] # the drop = F is here only so you see the dimnames
a
x3 3
我有 3 个数据框。我需要删除行名不存在于所有三个数据框中的所有行。我没有对行进行转置、合并、拆分和重新标记,而是在两个数据帧的情况下使用它:
df1 = df1[rownames(df1) %in% rownames(df2), ]
df2 = df2[rownames(df2) %in% rownames(df1), ]
这样做会使 df1 删除所有未出现在第二个数据集中的行,反之亦然。
但是我如何为 3 或 4 个数据集执行此操作?我需要这样的东西:
df1 = df1[rownames(df1) %in% c(rownames(df2), rownames(df3)), ]
但这似乎使它删除了 df2 和 df3 中都不存在的行,而我需要删除 df2 中不存在的行以及 df3 中不存在的任何行。
例如,如果:
df1 有三行,行名分别为 x1、x2 和 x3
df2 有行 x2、x3、x4
df3 有 x3、x4、x5 行
三者唯一共同的行是 x3,因此我希望从三个数据框中删除所有其他行。
也许您要找的只是 &
?
df1 <- data.frame(a = c(1,2,3), row.names = c("x1","x2","x3"))
df2 <- data.frame(b = c(2,3,4), row.names = c("x2","x3","x4"))
df3 <- data.frame(c = c(3,4,5), row.names = c("x3","x4","x5"))
df1[rownames(df1) %in% rownames(df2) & rownames(df1) %in% rownames(df3),
, drop = F] # the drop = F is here only so you see the dimnames
a
x3 3