gpt4 book ai didi

r - 如何仅使用目标列的一个值来使用 Spread 函数?

转载 作者:行者123 更新时间:2023-12-04 10:40:12 26 4
gpt4 key购买 nike

我们有以下数据框 a,内容如下:


> a
google_prod Value
1 categoria ML
2 google 120
3 youtube 24
4 categoria AO
5 google 2
6 youtube 0
7 categoria ML
8 google 27
9 youtube 0
10 categoria AO
11 google 5
12 youtube 0

我们想得到这个:

    categoria google_prod    Value
1 ML google 120
2 ML youtube 24
3 AO google 2
4 AO youtube 0
5 ML google 27
6 ML youtube 0
7 AO google 5
8 AO youtube 0

换句话说,执行一种 Spread 或类似函数的应用程序,其中仅从 google_prod 列中获取一个值来应用它,在本例中它将是“categoria”值。

最佳答案

library(tidyverse)

# getting the data
category <- rep(c("categoria", "google", "youtube"), 4)
value <- c("ML", "120", "24", "AO", "2", "0", "ML", "27", "0", "AO", "5", "0")

df <- tibble(category, value)

df %>%
mutate(helper = rep(1:(nrow(df)/3), each = 3)) %>%
pivot_wider(names_from = category, values_from = value) %>%
select(-helper) %>%
pivot_longer(names_to = "google_prod", values_to = "values", -1)

# # A tibble: 8 x 3
# categoria google_prod values
# <chr> <chr> <chr>
# 1 ML google 120
# 2 ML youtube 24
# 3 AO google 2
# 4 AO youtube 0
# 5 ML google 27
# 6 ML youtube 0
# 7 AO google 5
# 8 AO youtube 0

关于r - 如何仅使用目标列的一个值来使用 Spread 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60138006/

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