如何从与现有数据集不匹配的变量中创建新数据表

时间:2018-07-12 15:09:24

标签: r

我不确定该如何正确表达。基本上我有两个数据集。一个用于总计变量,另一个用于公共变量。我想根据总变量与普通变量之间的差异生成一个新的数据集。例如,如果Total的列为A,B,C,D,E,F,G,H,而Common的列为A,B,C,D,我想要一个具有其余E,F,G,H列的新数据集。拖放功能在这种情况下可以使用吗?我有超过300列,所以我不能简单地查看常见数据集中哪些不同或缺失。我需要某种循环来浏览1-300列,并确定哪些不在我的Total数据集中,并使用在Common Variables数据集中找不到的“ missing”列创建一个新的数据集。

1 个答案:

答案 0 :(得分:0)

您可以使用setdiff获取一组变量名,它们属于一个数据集,但不属于另一个数据集。

# Totatl Dataset w/300 variables: A, B, C, D, E, F, G, X8, X9, X10, ..., X300
Total <- data.frame(matrix(1:3000, ncol = 300, dimnames = list(NULL,  c(LETTERS[1:7], paste0("X", 8:300)))))

# Common Dataset w/6 variables: A, B, C, D, Foo, Bar
Common <- data.frame(matrix(1:60, ncol = 6, dimnames = list(NULL,  c(LETTERS[1:4], "Foo", "Bar"))))

# Dataset with remaining columns 
# which belongs to Total but not to Common
new1 <- Total[, setdiff(names(Total), names(Common))]

# Dataset with missing columns
# Which belongs to Common but not Total
new2 <- Common[, setdiff(names(Common), names(Total))]