此问题在此处已有答案:
(9个答案)四年前关闭了。我有一个来自R中导入的CSV的 Dataframe ,例如:
Salmon 6 Salmon 4 Salmon 7 Trout 2 Trout 3 Trout 2
我想重新整理一下
Salmon 6 4 7 Trout 2 3 2
转置后的值各自位于新列中。
vtwuwzda1#
您可以使用aggregate:
aggregate
aggregate(V2 ~ V1, data = mydata, c) # V1 V2.1 V2.2 V2.3 # 1 Salmon 6 4 7 # 2 Trout 2 3 2
数据:
read.table(text='Salmon 6 Salmon 4 Salmon 7 Trout 2 Trout 3 Trout 2', header=F, quote='"') -> mydata
6yoyoihd2#
下面是使用dcast的选项
dcast
library(data.table) dcast(setDT(mydata), V1~paste0("VN", rowid(V1)), value.var = 'V2') # V1 VN1 VN2 VN3 #1: Salmon 6 4 7 #2: Trout 2 3 2
mydata <- structure(list(V1 = structure(c(1L, 1L, 1L, 2L, 2L, 2L), .Label = c("Salmon", "Trout"), class = "factor"), V2 = c(6L, 4L, 7L, 2L, 3L, 2L)), .Names = c("V1", "V2"), class = "data.frame", row.names = c(NA, -6L))
2条答案
按热度按时间vtwuwzda1#
您可以使用
aggregate
:数据:
6yoyoihd2#
下面是使用
dcast
的选项数据