r中的数值常量/忽略连接

r中的数值常量/忽略连接,r,dplyr,concatenation,numeric,R,Dplyr,Concatenation,Numeric,我忘了连接finalgrade列,现在无法删除NA列,而不会在我尝试的任何操作中得到短语Error:grades$NA中意外的数值常量。我不想重做整个data.frame,尤其是在这种情况再次发生时 grades<-mutate(grades,finalgrade=NA,NA,NA,NA,NA,NA) grades students class exam1 exam2 exam3 finalexam finalgrade NA 1 Bill Freshman 80

我忘了连接finalgrade列,现在无法删除
NA
列,而不会在我尝试的任何操作中得到短语
Error:grades$NA中意外的数值常量。我不想重做整个
data.frame
,尤其是在这种情况再次发生时

grades<-mutate(grades,finalgrade=NA,NA,NA,NA,NA,NA)

grades
  students    class exam1 exam2 exam3 finalexam finalgrade NA
1     Bill Freshman    80    90    90        92         NA NA
2    Jimbo Sophmore    90    75    50        95         NA NA
3     Jeff   Junior    90    90    95        90         NA NA
4      Jim   Senior    75    75    85        80         NA NA
5   Johnny   Junior    90    90    90        95         NA NA
6     Joey   Senior    65    70    90        45         NA NA

等级首先,它必须是

grades <- mutate(grades, finalgrade = c(NA, NA, NA, NA, NA, NA))
我将在对问题的评论中使用@Frank的例子来说明上面的代码

library(dplyr)

bad <- mutate(mtcars[1:3, ], gah = NA, NA, NA)
bad
#   mpg cyl disp  hp drat    wt  qsec vs am gear carb gah NA
#1 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4  NA NA
#2 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4  NA NA
#3 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1  NA NA

它按预期工作。

使用
dplyr::select
,您可以根据列的名称或位置选择列。在这里,您试图保留第1列到第7列,因此可以在
选择中使用这些位置:

库(tidyverse)
等级%>%
选择(1:7)
#>学生班级exam1 exam2 exam3 FinalExam3 finalgrade
#>1比尔新生809092NA
#>2 Jimbo Sophomore 90 75 50 95 NA
#>3 Jeff Junior 90 90 NA
#>4吉姆高中75 85 80 NA
#>5约翰尼少年90 95北美
#>6乔伊65 70 90 45北美
更简单、更可扩展的是,您可以在列名或位置前面使用
-
来选择不包括哪些列,并且可以使用
ncol
来获取数据帧中的列数,从而选择排除最后一列:

等级%>%
选择(-ncol(.))
#>学生班级exam1 exam2 exam3 FinalExam3 finalgrade
#>1比尔新生809092NA
#>2 Jimbo Sophomore 90 75 50 95 NA
#>3 Jeff Junior 90 90 NA
#>4吉姆高中75 85 80 NA
#>5约翰尼少年90 95北美
#>6乔伊65 70 90 45北美

由(v0.2.0)于2018年8月22日创建。

通常更好地为人们提供一个具体的例子(可以复制粘贴到R中进行复制),如
库(dplyr);变异(mtcars[1:3,],gah=1,NA,NA)
@Frank我在编辑我的答案时使用了你的例子。谢谢,我自己应该想到的。
grades[ncol(grades)] <- NULL
library(dplyr)

bad <- mutate(mtcars[1:3, ], gah = NA, NA, NA)
bad
#   mpg cyl disp  hp drat    wt  qsec vs am gear carb gah NA
#1 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4  NA NA
#2 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4  NA NA
#3 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1  NA NA
bad[ncol(bad)] <- NULL
bad
#   mpg cyl disp  hp drat    wt  qsec vs am gear carb gah
#1 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4  NA
#2 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4  NA
#3 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1  NA