R 总和(出生):无效';类型';(性质)论据

R 总和(出生):无效';类型';(性质)论据,r,dplyr,R,Dplyr,大家好,, 我正在RStudio中使用样本数据。我使用了下面的代码: njnew <- nj %>% group_by(NAME_2) %>% summarise(Num.totalbirths=sum(births), Num.totalvulnerable=sum(vulnerable)) %>% mutate(percent.potentailcase=potentialcase/Num.totalpotentia

大家好,, 我正在RStudio中使用样本数据。我使用了下面的代码:

 njnew <- nj %>%
     group_by(NAME_2) %>%
   summarise(Num.totalbirths=sum(births),
             Num.totalvulnerable=sum(vulnerable)) %>%
    mutate(percent.potentailcase=potentialcase/Num.totalpotentialcase,
           percent.vulerablecase=vulnerable/Num.vulnerablecase)
我的数据集是csv,但我手动添加/填充了另外两列(出生、易受攻击)


您能告诉我这个错误是怎么发生的吗?

从错误消息判断,
似乎是
字符类型的。但是,您只能计算数值、复数或逻辑向量的总和。在读取csv后手动添加列时可能会发生这种情况

您可以使用
类(nj$batters)
再次检查变量的类型,该类可能返回
字符
。尝试使用
将变量转换为.numeric()
。您可能需要对手动添加的其他变量(如
易受攻击的
)重复该过程,例如:

nj <- nj %>% 
  mutate(births = as.numeric(births),
         vulnerable = as.numeric(vulnerable))
nj%
变异(出生=数字(出生),
易受攻击=如.numeric(易受攻击))

那么您的代码应该可以正常工作。

从错误消息判断,
的类型似乎是
字符。但是,您只能计算数值、复数或逻辑向量的总和。在读取csv后手动添加列时可能会发生这种情况

您可以使用
类(nj$batters)
再次检查变量的类型,该类可能返回
字符
。尝试使用
将变量转换为.numeric()
。您可能需要对手动添加的其他变量(如
易受攻击的
)重复该过程,例如:

nj <- nj %>% 
  mutate(births = as.numeric(births),
         vulnerable = as.numeric(vulnerable))
nj%
变异(出生=数字(出生),
易受攻击=如.numeric(易受攻击))

那么您的代码应该可以正常工作。

请提供一个数据集的示例。请提供一个数据集的示例。如果强制为数字,不包含数字的字符元素不总是不可避免地计算为NA吗?例如,
v as.numeric(v)[1]1.200 3.100 4.555 NA
@ChrisRuehlemann True,但我假设
出生
实际上是一个(专用)数字向量,但(意外地)存储为字符,如:
x中不包含数字的字符元素如果强制为数字,是否总是不可避免地计算为NA?例如,
v as.numeric(v)[1]1.200 3.100 4.555 NA
@ChrisRuehlemann True,但我假设
出生
实际上是一个(排他)数字向量,但(意外地)存储为字符,如:
x