在R中使用data.table时,我正在try 连接两个列并创建一个新列,其中我具有上一步的唯一值.在下面的示例中,您可以看到代码在第z1帧上运行良好,但在第z2帧时出现错误.但是,这两个表是以相同的方式创建的.这些列具有不同的信息,但这不应该是相同代码在z2上不起作用的原因.

非常感谢你的帮助,如果我说不清楚,请告诉我.

最好的,

library(data.table)


z1 <- data.table(a = c("ARE_2014_HIES_D1_INC_GROUP", "ARE_2014_HIES_D1_INC_GROUP"), 
                 b = c("ARE_2014_HIES_D1_INC_GROUP", "ARE_2015_HIES_D1_INC_GROUP"))


z2 <- data.table(a = c("ARG_1980_EPH_D2_INC_GROUP", "ARG_1980_EPH_D2_INC_GROUP"), 
                 b = c("ARG_1986_EPH_D2_INC_HIST", "ARG_1986_EPH_D2_INC_HIST"))


z1[,
   cache_id := as.list(apply(.SD, 1, unique)),
   .SDcols = c("a", "b")
]

z1[]
#>                             a                          b
#> 1: ARE_2014_HIES_D1_INC_GROUP ARE_2014_HIES_D1_INC_GROUP
#> 2: ARE_2014_HIES_D1_INC_GROUP ARE_2015_HIES_D1_INC_GROUP
#>                                                 cache_id
#> 1:                            ARE_2014_HIES_D1_INC_GROUP
#> 2: ARE_2014_HIES_D1_INC_GROUP,ARE_2015_HIES_D1_INC_GROUP


z2[,
   cache_id := as.list(apply(.SD, 1, unique)),
   .SDcols = c("a", "b")
]
#> Error in `[.data.table`(z2, , `:=`(cache_id, as.list(apply(.SD, 1, unique))), : Supplied 4 items to be assigned to 2 items of column 'cache_id'. If you wish to 'recycle' the RHS please use rep() to make this intent clear to readers of your code.
z2[]
#>                            a                        b
#> 1: ARG_1980_EPH_D2_INC_GROUP ARG_1986_EPH_D2_INC_HIST
#> 2: ARG_1980_EPH_D2_INC_GROUP ARG_1986_EPH_D2_INC_HIST

创建于2023-06-12年第reprex v2.0.2

推荐答案

您可以try 以下方法:

z1[, cache_id:=list(.(unique(c(a,b)))), 1:nrow(z1)]

同样地,对于z2

输出:

                            a                          b                                              cache_id
                       <char>                     <char>                                                <list>
1: ARE_2014_HIES_D1_INC_GROUP ARE_2014_HIES_D1_INC_GROUP                            ARE_2014_HIES_D1_INC_GROUP
2: ARE_2014_HIES_D1_INC_GROUP ARE_2015_HIES_D1_INC_GROUP ARE_2014_HIES_D1_INC_GROUP,ARE_2015_HIES_D1_INC_GROUP

R相关问答推荐

使用gggplot 2在R中正确表示翻转堆叠条形图中的数据

R中的Fasttext langue_identification返回太多参数-如何与文本匹配?

在数据表中呈现数学符号

变量计算按R中的行更改

如何根据条件计算时差(天)

矩阵%*%矩阵中的错误:需要数字/复杂矩阵/向量参数

如何在R中合并和合并多个rabrame?

基于多列将值链接到NA

在特定Quarto(reveal.js)幻灯片上隐藏徽标

使用geom_segment()对y轴排序

使用Facet_WRAP时更改框图中线的 colored颜色

当我添加美学时,geom_point未对齐

从多个可选列中选取一个值到一个新列中

如何计算每12行的平均数?

如果条件匹配,则使用Mariate粘贴列名

Conditional documentr::R中数据帧的summarize()

按两个因素将观测值分组后计算单独的百分比

如何在内联代码中添加额外的空格(R Markdown)

如何在刻面和翻转堆叠条形图中对齐geom_text()

以R表示的NaN值的IS.NA状态