gpt4 book ai didi

r - 根据索引连接(粘贴)元素

转载 作者:行者123 更新时间:2023-12-04 16:59:24 24 4
gpt4 key购买 nike

我想根据索引连接( paste )data.frame 中元素的行。我怎样才能有效地做到这一点?这很容易使用唯一标识符,但在这里我有索引不是要连接的因素。欢迎所有软件包和基础解决方案选项。

indexes <- list(
2:3,
6:8,
11:12
)


dat <- data.frame(
x = c(1, 2, 2, 3, 4, 5, 5, 5, 6, 7, 2, 2, 1),
y = LETTERS[1:13],
z = "PP", stringsAsFactors = FALSE
)

x y z
1 1 A PP
2 2 B PP
3 2 C PP
4 3 D PP
5 4 E PP
6 5 F PP
7 5 G PP
8 5 H PP
9 6 I PP
10 7 J PP
11 2 K PP
12 2 L PP
13 1 M PP

期望的输出:
   x y         z
1 1 A PP
2 2 B, C PP
3 3 D PP
4 4 E PP
5 5 F, G, H PP
6 6 I PP
7 7 J PP
8 2 K, L PP
9 1 M PP

最佳答案

这是基本 R 中的一种可能的解决方案:

dat[sapply(indexes, "[", 1), "y"] <- sapply(indexes, function(i)  {
paste(dat[["y"]][i], collapse = ", ")
})

dat[ setdiff( 1:nrow(dat),
setdiff(
unlist(indexes),
sapply(indexes, "[", 1)
)
), ]

x y z
1 1 A PP
2 2 B, C PP
4 3 D PP
5 4 E PP
6 5 F, G, H PP
9 6 I PP
10 7 J PP
11 2 K, L PP
13 1 M PP

关于r - 根据索引连接(粘贴)元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33022767/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com