[英]Removing columns of some data frames in R
我想从某些数据框中删除列A和B。 但是我所有的数据框没有相同的列。 例如,df1具有列A,B和C,因此:
df1 <- subset(df1 , select = -c(`A`,`B`))
但是df2有A和D列,而没有B列,所以我可以这样做:
df2 <- subset(df2 , select = -c(`A`))
由于我有很多数据帧,有没有办法更改也可用于第二个df的第一个代码,而不会出现列B不在第二个数据帧中的错误?
一种方法是使用setdiff
setdiff(names(df1), c('A', 'B'))
可以在subset
“ select”参数中传递它
subset(df1, select = setdiff(names(df1), c('A', 'B')))
它可以包装在一个函数中并用于多个数据集
fsubset <- function(dat, colstoRemove){
subset(dat, select = setdiff(names(dat), colstoRemove))
}
fsubset(df1, c("A", "B"))
fsubset(df2, c("A", "B"))
df1 <- data.frame(A = 1:5, B = 6:10, C = 11:15)
df2 <- data.frame(A = 1:6, D = 11:16)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.