R 将data.table的列转换为同一data.table中的列表
我有一个数据表如下:R 将data.table的列转换为同一data.table中的列表,r,list,data.table,R,List,Data.table,我有一个数据表如下: library(data.table) DT <- fread( "A B C D E F iso year 0 A 1 1 NA NA NLD 2009 1 Y 0 2 NA NA NLD 2009 0 Q 1 3 NA NA AUS 2011 1 NA 0 4 NA NA AUS 201
library(data.table)
DT <- fread(
"A B C D E F iso year
0 A 1 1 NA NA NLD 2009
1 Y 0 2 NA NA NLD 2009
0 Q 1 3 NA NA AUS 2011
1 NA 0 4 NA NA AUS 2011
0 0 1 7 NA NA NLD 2008
1 1 1 1 NA NA NLD 2008
0 1 1 3 NA NA AUS 2012
0 NA 1 NA 1 NA ECU 2009
1 NA 0 NA 2 0 ECU 2009
0 NA 0 NA 3 0 BRA 2011
1 NA 0 NA 4 0 BRA 2011
0 NA 1 NA 7 NA ECU 2008
1 NA 0 NA 1 0 ECU 2008
0 NA 0 NA 3 2 BRA 2012
1 NA 0 NA 4 NA BRA 2012",
header = TRUE
)
我怎样才能让它在R中工作?这里有一个选项
DT[, C1 := list(list(C)), by = iso]
DT
# A B C D E F iso year C1
# 1: 0 A 1 1 NA NA NLD 2009 1,0,1,1
# 2: 1 Y 0 2 NA NA NLD 2009 1,0,1,1
# 3: 0 Q 1 3 NA NA AUS 2011 1,0,1
# 4: 1 <NA> 0 4 NA NA AUS 2011 1,0,1
# 5: 0 0 1 7 NA NA NLD 2008 1,0,1,1
# 6: 1 1 1 1 NA NA NLD 2008 1,0,1,1
# 7: 0 1 1 3 NA NA AUS 2012 1,0,1
# 8: 0 <NA> 1 NA 1 NA ECU 2009 1,0,1,0
# 9: 1 <NA> 0 NA 2 0 ECU 2009 1,0,1,0
#10: 0 <NA> 0 NA 3 0 BRA 2011 0,0,0,0
#11: 1 <NA> 0 NA 4 0 BRA 2011 0,0,0,0
#12: 0 <NA> 1 NA 7 NA ECU 2008 1,0,1,0
#13: 1 <NA> 0 NA 1 0 ECU 2008 1,0,1,0
#14: 0 <NA> 0 NA 3 2 BRA 2012 0,0,0,0
#15: 1 <NA> 0 NA 4 NA BRA 2012 0,0,0,0
这里有一个选择
DT[, C1 := list(list(C)), by = iso]
DT
# A B C D E F iso year C1
# 1: 0 A 1 1 NA NA NLD 2009 1,0,1,1
# 2: 1 Y 0 2 NA NA NLD 2009 1,0,1,1
# 3: 0 Q 1 3 NA NA AUS 2011 1,0,1
# 4: 1 <NA> 0 4 NA NA AUS 2011 1,0,1
# 5: 0 0 1 7 NA NA NLD 2008 1,0,1,1
# 6: 1 1 1 1 NA NA NLD 2008 1,0,1,1
# 7: 0 1 1 3 NA NA AUS 2012 1,0,1
# 8: 0 <NA> 1 NA 1 NA ECU 2009 1,0,1,0
# 9: 1 <NA> 0 NA 2 0 ECU 2009 1,0,1,0
#10: 0 <NA> 0 NA 3 0 BRA 2011 0,0,0,0
#11: 1 <NA> 0 NA 4 0 BRA 2011 0,0,0,0
#12: 0 <NA> 1 NA 7 NA ECU 2008 1,0,1,0
#13: 1 <NA> 0 NA 1 0 ECU 2008 1,0,1,0
#14: 0 <NA> 0 NA 3 2 BRA 2012 0,0,0,0
#15: 1 <NA> 0 NA 4 NA BRA 2012 0,0,0,0
class(DT$C) <- "list"
DT[, C := list(list(unlist(C))), iso]