r - data.table 中类型为 list 的列的错误消息

标签 r data.table

对于示例数据框:

df1 <- structure(list(country = list("PL", "PL", "PL", "PL", "SE", "SE", 
                                     "SE", "SE", "SE", "SE", "SE", "SE"), 
                  region = c("PL42", "PL34", 
                             "PL33", "PL62", "SE22", "SE32", "SE11", "SE31", "SE23", "SE12", 
                               "SE21", "SE33"), 
                   N = c(59L, 55L, 59L, 48L, 233L, 91L, 406L, 148L, 
                         323L, 248L, 163L, 104L), 
                     freq.1 = c(31L, 34L, 37L, 27L, 109L, 
                                 53L, 175L, 82L, 169L, 134L, 80L, 51L), result = c(53.52, 61.2, 
                                                                                                                                                                                                  63.24, 55.7, 46.78, 58.24, 43.1, 55.41, 52.32, 54.03, 49.08, 
                                                                                                                                                                                                  49.04), level = c(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2)), .Names = c("country", 
                                                                                                                                                                                                                                                                     "region", "N", "freq.1", "result", "level"), class = c("data.table", 
                                                                                                                                                                                                                                                                                                                            "data.frame"), row.names = c(NA, -12L))

我想应用一个简短的函数来生成一个汇总表:
variable.country <-setDT(df1)[order(country), 
                                           list(min_result = min(result),
                                                no.regions =.N,
                                                max_result = max(result), 
                                                level= level[1L]), 
                                           by = country]

但我收到错误:
Error in forder(x, country) : 
  Column '1' is type 'list' which is not supported for ordering currently.

我该如何解决这个问题?

最佳答案

“国家”栏是 list .我们可以 unlist列,它应该可以正常工作

df1[, country:= unlist(country)][order(country), 
                           list(min_result = min(result),
                                no.regions =.N,
                                max_result = max(result), 
                                level= level[1L]), .(country)]
#   country min_result no.regions max_result level
#1:      PL      53.52          4      63.24     2
#2:      SE      43.10          8      58.24     2

关于r - data.table 中类型为 list 的列的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35778818/

相关文章:

python - R 记录器的调试器级别 - FINEST 是否等于 Python 的 DEBUG?

r - 当范围每天都在变化时,如何使用 plot() 调整 x 轴?

r - 如何从R中的集群创建newick文件?

r - 使用 data.table 按组标准化

r - 子集 data.table 仅保留大于应用于所有列的特定值的元素

r - 累积回溯滚动连接

R - 根据原始值更改数据框中的值

sql - 如何在R中模拟SQL等级函数?

r - 使用 .SDcols 时,data.table 可以处理相同的列名吗?

r - 仅将 R 方法应用于某个类的*矩阵*