“强制引入的NA”,转换因子为数字

时间:2019-02-26 17:14:48

标签: r

任务:对列中的所有元素求和。

问题:这样做时,出现以下错误“由强制性引入的NA”。

如何避免这种情况?这是我到目前为止所做的:

load dataset and get the table:
dat <- read.table("http://stat.ethz.ch/Teaching/Datasets/milben.dat")            

get the first column and exclude first element: 
fc<- dat[-1,1]         

transform factors in numbers and compute the sum
sum(as.numeric(levels(fc))[fc]) numbers

非常感谢您!

2 个答案:

答案 0 :(得分:0)

根据我的收集,看来您想对频数列求和。以下代码(使用tidyverse)可能会有所帮助:

library(tidyverse)


df <- read_table('http://stat.ethz.ch/Teaching/Datasets/milben.dat')

df %>%
  summarize(
    total = sum(frequency)
  )

输出为:

# A tibble: 1 x 1
  total
  <dbl>
1   150

答案 1 :(得分:0)

这是一个简单的data.table解决方案。 @www评论是最好的。然后,您用sum(fc$n)和/或sum(fc$frequency)求和。

library(data.table)
library(magrittr)

dat <- fread("http://stat.ethz.ch/Teaching/Datasets/milben.dat") %>% 
  .[-1]

dat[, lapply(.SD,
             sum)]
#>     n frequency
#> 1: 28        80

reprex package(v0.2.1)于2019-02-28创建