Chr*_*ina 4 r subset dataframe
我有一个矩阵,我想通过名称消除两列。\n我的代码是:
\n\ntrn_data = subset(trn_data, select = -c("Rye flour","Barley products"))\nRun Code Online (Sandbox Code Playgroud)\n\n但 R 给了我这样的错误消息:
\n\n\n\n\nRun Code Online (Sandbox Code Playgroud)\nError in -c("Rye flour", "Barley products") : \n invalid argument to unary operator\n
我试过这个
\n\ntrn_data = subset(trn_data, select = -c(Rye flour,Barley products))\nRun Code Online (Sandbox Code Playgroud)\n\n还返回错误\xef\xbc\x9a
\n\n\n\n\nRun Code Online (Sandbox Code Playgroud)\nError: unexpected symbol in "trn_data=subset(trn_data,select =-c(Rye flour"\n
我怎样才能解决这个问题?有没有其他方法可以通过名称消除两列?
\ncharacters您不应提供的名称subset。这有效:
trn_data_subset <- subset(trn_data, select = -c(`Rye flour`,`Barley products`))
Run Code Online (Sandbox Code Playgroud)
如果列名中有空格,则应使用Grave Accent。
这是使用数据集的示例mtcars:
mtexapmple <- mtcars[1:4,]
names(mtexapmple)[1] <- "mpg with space"
mtexapmple
#> mpg with space cyl disp hp drat wt qsec vs am gear carb
#> Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
#> Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
#> Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
#> Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
subset(mtexapmple, select = -c(`mpg with space`, cyl))
#> disp hp drat wt qsec vs am gear carb
#> Mazda RX4 160 110 3.90 2.620 16.46 0 1 4 4
#> Mazda RX4 Wag 160 110 3.90 2.875 17.02 0 1 4 4
#> Datsun 710 108 93 3.85 2.320 18.61 1 1 4 1
#> Hornet 4 Drive 258 110 3.08 3.215 19.44 1 0 3 1
Run Code Online (Sandbox Code Playgroud)
你也可以这样做:
within(trn_data, rm(`Rye flour`,`Barley products`))
Run Code Online (Sandbox Code Playgroud)
或者
trn_data[, !(colnames(trn_data) %in% c("Rye flour","Barley products"))]
Run Code Online (Sandbox Code Playgroud)