我试图比较两个数据集中的匹配,使用相同的变量,逐个变量。使用循环,我无法完全获得变量向量的名称。以下是代码示例:
vars <- c("a", "b", "c")
x <- data.frame(a = rnorm(100), b = rnorm(100), c=rnorm(100))
y <- data.frame(a = rnorm(100), b = rnorm(100), c=rnorm(100))
for(i in 1:length(vars)){
print(table(x$vars[i] %in% y$vars[i]))
}
任何和所有的想法都非常感激。
答案 0 :(得分:3)
您无法使用data.frame
和变量名称访问$
的列。在您的示例中,您会在i
vars
和data.frame
中查找x
列(不存在)的y
元素。正确的访问方式是[
:
for(i in 1:length(vars)){
print(table(x[, vars[i]] %in% y[, vars[i]]))
}
BTW:您可以将mapply
用于此目的并避免手动访问列:
mapply(function(xx, yy)table(xx %in% yy), xx=x, yy=y)