gpt4 book ai didi

重新排列 R 中的数据框列(mutate、dplyr)

转载 作者:行者123 更新时间:2023-12-03 20:27:51 25 4
gpt4 key购买 nike

我有一个像这样的数据框

Type  Number  Species
A 1 G
A 2 R
A 7 Q
A 4 L
B 4 S
B 5 T
B 3 H
B 9 P
C 12 K
C 11 T
C 6 U
C 5 Q

我在哪里使用 group_by(Type)
我的目标是通过让 NUMBER 成为数字列中的前 2 个值来折叠这些数据,然后创建一个新列(Number_2)作为第二个 2 个值。
此外,我希望删除底部两个数字的 Species 值,以便该物种对应于行中较高的数字
我想使用 dplyr,最终看起来像这样
Type  Number Number_2   Species       
A 7 1 Q
A 4 2 L
B 5 3 T
B 9 4 P
C 12 6 K
C 11 5 T

到目前为止, number_2 的顺序无关紧要,只要它是相同类型的......
我不知道这是否可行,但如果可行,有人知道如何...

谢谢!

最佳答案

你可以试试

library(data.table)
setDT(df1)[order(-Number), list(Number1=Number[1:2],
Number2=Number[3:4],
Species=Species[1:2]), keyby = Type]
# Type Number1 Number2 Species
#1: A 7 2 Q
#2: A 4 1 L
#3: B 9 4 P
#4: B 5 3 T
#5: C 12 6 K
#6: C 11 5 T

或使用 dplyrdo
 library(dplyr)
df1 %>%
group_by(Type) %>%
arrange(desc(Number)) %>%
do(data.frame(Type=.$Type[1L],
Number1=.$Number[1:2],
Number2 = .$Number[3:4],
Species=.$Species[1:2], stringsAsFactors=FALSE))
# Type Number1 Number2 Species
#1 A 7 2 Q
#2 A 4 1 L
#3 B 9 4 P
#4 B 5 3 T
#5 C 12 6 K
#6 C 11 5 T

关于重新排列 R 中的数据框列(mutate、dplyr),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31271693/

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