gpt4 book ai didi

r - 获取数据框中列的每个项目的频率和第一次出现

转载 作者:行者123 更新时间:2023-12-05 08:45:13 25 4
gpt4 key购买 nike

在 R 中,我试图获取数据框中列的每个项目的频率和第一次出现。

我有这个:

df_input <- data.frame(observation_source = c("AB","CD","EF","GH","IJ","KL","MN"), observation_value = c(15,17,17,17,21,32,32))

observation_source observation_value
1 AB 15
2 CD 17
3 EF 17
4 GH 17
5 IJ 21
6 KL 32
7 MN 32

我正试图得到这个:

  observation_source observation_value value_frequency value_first_row
1 AB 15 1 1
2 CD 17 3 2
3 EF 17 3 2
4 GH 17 3 2
5 IJ 21 1 5
6 KL 32 2 6
7 MN 32 2 6

这样,例如在第 4 行,值 17 总共出现 3 次,第一次出现在第 2 行。

我知道如何使用 for 循环执行此操作,但随着行数的增加(例如 100,000),它会变得非常慢。知道我还能怎么做吗?非常感谢!!

最佳答案

您可以使用 add_countmatch 来实现这两个目标:

library(dplyr)

df_input %>%
add_count(observation_value, name = "value_frequency") %>%
mutate(value_first_row = observation_value %>% match(., .))

# observation_source observation_value value_frequency value_first_row
# 1 AB 15 1 1
# 2 CD 17 3 2
# 3 EF 17 3 2
# 4 GH 17 3 2
# 5 IJ 21 1 5
# 6 KL 32 2 6
# 7 MN 32 2 6

关于r - 获取数据框中列的每个项目的频率和第一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73489972/

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