【发布时间】:2018-09-14 14:28:15
【问题描述】:
我正在尝试分组,但说: 这是一个更详细的问题,没有答案。
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 不会。
应该怎么做?
【问题讨论】:
-
一个非常低效的选择:
DT[, sum(get("Ποσότητα"))] -
@Frank 它说
Error in sum(get("Ποσότητα")) : invalid 'type' (character) of argument。也试过:DT[, sum(get(as.numeric(("Ποσότητα")))],但说:Error: unexpected ']' in "DT[, sum(get(as.numeric(("Ποσότητα")))]"
标签: r data.table