Answers:
如果您的data.frame被调用,则使用dplyr包df1
:
library(dplyr)
df1 %>%
select(A, B, E)
也可以在不使用%>%
管道的情况下将其写为:
select(df1, A, B, E)
df1 %>% select(A, B, E) %>% rowMeans(.)
。输入以下内容查看%>%
管道的文档?magrittr::`%>%`
您可以使用列名称的向量作为子集。与将列名视为对象名(例如subset()
)的方法相比,我特别喜欢这种方法,尤其是在函数,程序包或应用程序中进行编程时。
# data for reproducible example
# (and to avoid confusion from trying to subset `stats::df`)
df <- setNames(data.frame(as.list(1:5)), LETTERS[1:5])
# subset
df[,c("A","B","E")]
object of type 'closure' is not subsettable
。
df
。df
也是stats软件包中的函数。
-"A"
是语法错误。并?Extract
说,“ ,也可以是负整数,表明元素/切片离开选择了。” i
j
...
> df[,c("A")]
[1] 1
。使用subset
没有这个缺点。
这是subset()
函数的作用:
> dat <- data.frame(A=c(1,2),B=c(3,4),C=c(5,6),D=c(7,7),E=c(8,8),F=c(9,9))
> subset(dat, select=c("A", "B"))
A B
1 1 3
2 2 4
c("A", "B")
是一个向量,而不是列表。
您还可以使用sqldf
对R数据帧执行选择的程序包,如下所示:
df1 <- sqldf("select A, B, E from df")
这给出了df1
具有列A,B,E 的数据帧作为输出。
您可以使用with
:
with(df, data.frame(A, B, E))
df<- dplyr::select ( df,A,B,C)
另外,您可以为新创建的数据指定其他名称
data<- dplyr::select ( df,A,B,C)