在 data.table 中连接列中的值
concatenate values in column in a data.table
很难为这个问题选择一个标题,但这是细节。让我们在这个例子中使用 mtcars。
让我们将其转换为 data.table
m<-as.data.table(mtcars,keep.rownames = T)
我想要的是将所有具有特定碳水化合物值的汽车连接成一个字符。所以我做了以下事情:
A<-m[, list(list(rn)), by = carb]
它部分有效...对于 carb=4 我得到:
马自达 RX4,马自达 RX4 Wag,Duster 360,Merc 280,Merc 280C,凯迪拉克弗利特伍德,
但那些不是所有carb=4的车
答案似乎以某种方式被删减了...
我希望有人能帮助解决这个问题...
此行:A<-m[, list(list(rn)), by = carb]
在 class 的 data.table 中创建了一个列 "list":
class(A$V1)
[1] "list"
这使得操作变得非常困难。此外,打印时结果会稍微修剪一下。
一个更简单更好的解决方案 - 连接成一个字符串:
A<-m[, paste(rn,collapse=","),by=carb]
A
carb V1
1: 4 Mazda RX4,Mazda RX4 Wag,Duster 360,Merc 280,Merc 280C,Cadillac Fleetwood,Lincoln Continental,Chrysler Imperial,Camaro Z28,Ford Pantera L
2: 1 Datsun 710,Hornet 4 Drive,Valiant,Fiat 128,Toyota Corolla,Toyota Corona,Fiat X1-9
3: 2 Hornet Sportabout,Merc 240D,Merc 230,Honda Civic,Dodge Challenger,AMC Javelin,Pontiac Firebird,Porsche 914-2,Lotus Europa,Volvo 142E
4: 3 Merc 450SE,Merc 450SL,Merc 450SLC
5: 6 Ferrari Dino
6: 8 Maserati Bora
很难为这个问题选择一个标题,但这是细节。让我们在这个例子中使用 mtcars。
让我们将其转换为 data.table
m<-as.data.table(mtcars,keep.rownames = T)
我想要的是将所有具有特定碳水化合物值的汽车连接成一个字符。所以我做了以下事情:
A<-m[, list(list(rn)), by = carb]
它部分有效...对于 carb=4 我得到: 马自达 RX4,马自达 RX4 Wag,Duster 360,Merc 280,Merc 280C,凯迪拉克弗利特伍德,
但那些不是所有carb=4的车 答案似乎以某种方式被删减了...
我希望有人能帮助解决这个问题...
此行:A<-m[, list(list(rn)), by = carb]
在 class 的 data.table 中创建了一个列 "list":
class(A$V1)
[1] "list"
这使得操作变得非常困难。此外,打印时结果会稍微修剪一下。 一个更简单更好的解决方案 - 连接成一个字符串:
A<-m[, paste(rn,collapse=","),by=carb]
A
carb V1
1: 4 Mazda RX4,Mazda RX4 Wag,Duster 360,Merc 280,Merc 280C,Cadillac Fleetwood,Lincoln Continental,Chrysler Imperial,Camaro Z28,Ford Pantera L
2: 1 Datsun 710,Hornet 4 Drive,Valiant,Fiat 128,Toyota Corolla,Toyota Corona,Fiat X1-9
3: 2 Hornet Sportabout,Merc 240D,Merc 230,Honda Civic,Dodge Challenger,AMC Javelin,Pontiac Firebird,Porsche 914-2,Lotus Europa,Volvo 142E
4: 3 Merc 450SE,Merc 450SL,Merc 450SLC
5: 6 Ferrari Dino
6: 8 Maserati Bora