我正在尝试分组讨论,但说: 这是一个更详细的问题,没有答案。
library(data.table)
DT <- fread("Dataset.csv",encoding = 'UTF-8')
DT #until this all is fine
DT[, sum(as.numeric(Ποσότητα), na.rm=TRUE), by=.(user)]
[.data.table
(DT,,sum(as.numeric(Ποσότητα),na.rm = TRUE)中的错误, :找不到对象'Ποσότητα' >
有用的信息:
colnames(DT)
"Ημερομηνία" "Χρήστης" "Ποσότητα"
DT
Ημερομηνία Χρήστης Ποσότητα
1: 2018-09-03 user_01 -
2: 2018-09-03 user_01 -
3: 2018-09-03 user_02 -
4: 2018-09-03 user_03 -
5: 2018-09-03 user_04 222
---
154: 2018-09-10 user_21 1
155: 2018-09-10 user_22 4000
156: 2018-09-10 user_23 3
显然该名称正确,但是不起作用。我尝试了另一个带有英语单词的数据集,它奏效了。也许是该列中的破折号(-)导致了问题?
如果我这样做:
x=read.table('Dataset_b.csv',
stringsAsFactors=FALSE,encoding = 'UTF-8',sep =',',header = TRUE)
dt = data.table(x)
dt[, sum(as.numeric(Ποσότητα), na.rm=TRUE), by=.(Χρήστης)]
它正常工作。但是fread
却没有。
应该怎么做?
答案 0 :(得分:0)
破折号是一个字符,您不能将它们加在一起。您可以尝试在fread()中添加na.strings =“-”。或将破折号替换为适当的NA。
DT[Ποσότητα==“-“, Ποσότητα:=NA]