我对R有点新,并希望通过该列的名称从矩阵中删除列 . 我知道 X[,2] 给出第二列, X[,-2] 给出除第二列之外的每一列 . 我真正想知道的是,如果's a similar command using column names. I'有一个矩阵并且想要删除"sales"列,但 X[,-"sales"] 似乎不适用于此 . 我该怎么做?我只会使用列号,我希望以后可以将它用于其他矩阵,它们具有不同的尺寸 . 任何帮助将非常感激 .
X[,2]
X[,-2]
X[,-"sales"]
我最喜欢的方式:
# create data df <- data.frame(x = runif(100), y = runif(100), remove_me = runif(100), remove_me_too = runif(100)) # remove column df <- df[,!names(df) %in% c("remove_me", "remove_me_too")]
所以这个数据帧:
> df x y remove_me remove_me_too 1 0.731124508 0.535219259 0.33209113 0.736142042 2 0.612017350 0.404128030 0.84923974 0.624543223 3 0.415403559 0.369818154 0.53817387 0.661263087 4 0.199780006 0.679946936 0.58782429 0.085624708 5 0.343304259 0.892128112 0.02827132 0.038203599
成为这个:
> df x y 1 0.731124508 0.535219259 2 0.612017350 0.404128030 3 0.415403559 0.369818154 4 0.199780006 0.679946936 5 0.343304259 0.892128112
df <- data.frame(x = runif(10), y = runif(10), z = runif(10), w = runif(10)) matrix_to_data_frame(df) df$x<-NULL df
与R一样,有许多潜在的解决方案 . 您可以使用包 dplyr 和 select() 轻松删除或选择数据框中的列 .
dplyr
select()
df <- data.frame(x = runif(100), y = runif(100), remove_me = runif(100), remove_me_too = runif(100)) library(dplyr) select(df, -remove_me, -remove_me_too) %>% head() #> x y #> 1 0.35113636 0.134590652 #> 2 0.72545356 0.165608839 #> 3 0.81000067 0.090696049 #> 4 0.29882204 0.004602398 #> 5 0.93492918 0.256870750 #> 6 0.03007377 0.395614901
你可以阅读更多关于 dplyr 及其动词here.的信息
3 回答
我最喜欢的方式:
所以这个数据帧:
成为这个:
与R一样,有许多潜在的解决方案 . 您可以使用包
dplyr
和select()
轻松删除或选择数据框中的列 .你可以阅读更多关于
dplyr
及其动词here.的信息