[英]Create a list of all values of a variable grouped by another variable in R
[英]R list all distinct values for each value of another variable
我想列出與另一個變量的值關聯的所有不同值。 例如:
nums <- rep(1:3,5)
nums2 <- 142:156
numbers <- data.frame(sort(nums),nums2)
nums nums2
1 1 142
2 1 143
3 1 144
4 1 145
5 1 146
6 2 147
7 2 148
8 2 149
9 2 150
10 2 151
11 3 152
12 3 153
13 3 154
14 3 155
15 3 156
現在,我想弄清楚如何為nums
每個唯一值列出nums2
的所有唯一值,這樣我就可以獲得這樣的列表:
nums values
1 1 142,143,144,145,146
2 2 147,148,149,150,151
3 3 152,153,154,155,156
任何幫助表示贊賞。
您可以為此使用aggregate
和paste
:
aggregate(cbind(values=nums2) ~ nums, numbers, paste, collapse=",")
nums values
1 1 142,145,148,151,154
2 2 143,146,149,152,155
3 3 144,147,150,153,156
setNames(data.frame(do.call(rbind, lapply(split(numbers, numbers$sort.nums.),
function(a) c(a$sort.nums[1], paste(a$nums2, collapse = ", "))))),
nm = c("nums","values"))
在dplyr
它看起來像:
numbers %>% group_by(sort.nums.) %>% summarise( values= paste(nums2,collapse=",") )
這是使用data.table
的選項
library(data.table)
unique(setDT(numbers))[, .(values = toString(nums2)), by = nums]
# nums values
#1: 1 142, 143, 144, 145, 146
#2: 2 147, 148, 149, 150, 151
#3: 3 152, 153, 154, 155, 156
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.