我正在编写一个函数来自动读取几个数据帧的列。我想要访问的列的名称和位置有时会有所不同
作为可重复的例子:
a= c(1:3)
b= c(4:6)
A = data.frame(a,b)
colnames(A) = c("column1", "column2")
B = data.frame(b,a)
colnames(B) = c("col1", "col2")
现在我想访问值a,例如:
`$`(A, "column1"|"col2")
因为逻辑运算符不适用于字符,所以我尝试使用
A[,which(colnames(A[,1]) == "column1" | names(A[,2]) =="col2")]
但似乎colnames() - 函数不起作用。 有没有人知道如何处理这个问题?
答案 0 :(得分:0)
尝试使用grep
。它适用于A
和B
。
A[, grep("column1|col2", names(A))]
#[1] 1 2 3
B[, grep("column1|col2", names(B))]
#[1] 1 2 3