在R中按多个变量名查找数据

时间:2017-05-15 19:25:21

标签: r

我对R中的变量名称有疑问。

在我的数据集中,我有70个变量名称列表作为字符,我想在数据中找到相应的数据(包括标题)。

例如,我使用了数据集iris。我不想通过iris $ Sepal.Length选择所有变量,因为我在我使用的数据集中有70个变量。在我的代码中,我可以打印数据,但我很难将数据保存为具有相应标题名称的数据帧。有人有什么想法吗?

iris
head(iris)
colnames(iris)
b <- list("Sepal.Length","Petal.Length")

i=1
for (i in 1:length(b)){
#print(b[[i]])
print(iris[,c(b[[i]])])
c[,i]<-(iris[,c(b[[i]])])
}

3 个答案:

答案 0 :(得分:0)

我发现dplyr最适合这个。如果你把光圈变成一个光纤

iris <- as_tibble(iris)

然后,您可以使用dplyr :: select函数,按名称(无引号)或按位置选择。您甚至可以使用1:5表示法选择第1列到第5列。一个很好的起点是:http://r4ds.had.co.nz

答案 1 :(得分:0)

听起来你正试图从data.frame或matrix获得70列的子集。您拥有的70列存储在list中。 R将允许您获取由character向量命名的列,但不是list。因此,您只需使用unlist

b <- list("Sepal.Length","Petal.Length")
newTable <- iris[,unlist(b)]

答案 2 :(得分:0)

你正在寻找这个吗?

b <- c("Sepal.Length","Petal.Length")
New_iris=iris[,b]