gpt4 book ai didi

r - 如何按给定列中的值汇总 R 数据集?

转载 作者:行者123 更新时间:2023-12-04 00:56:06 25 4
gpt4 key购买 nike

我是 R 的新手,到目前为止我一直做得很好,但我现在需要做一些有点复杂的事情,而且不能完全让它工作。我有一个类似于以下的数据集(以后我将称之为 df):

df <- tribble(~name,             ~word,             ~N,
"brandon", "hello", 3,
"john", "test", 5,
"jim", "hello", 2,
"brandon", "goodbye", 2,
"brandon", "test", 1,
"jim", "goodbye", 4)

到目前为止我有这样的事情发生:

temp_df <- df %>% mutate(
"hello" = ifelse(word == "hello", N, 0),
"goodbye" = ifelse(word == "goodbye", N, 0),
"test" = ifelse(word == "test", N, 0)
)

它正在创建这样的东西:

name            hello           goodbye        test        word         N
brandon 3 0 0 hello 3
john 0 0 5 test 5
jim 2 0 0 hello 2
brandon 0 2 0 goodbye 2
brandon 0 0 1 test 1
jim 0 4 0 goodbye 4

但我需要 df 看起来像这样:

name            hello           goodbye        test
brandon 3 2 1
john 0 0 5
jim 2 4 0

我知道在此处完成后如何选择()重要数据,但我不确定如何将每个名称的所有数据放入一行中。

最佳答案

使用dplyr:

df %>%
pivot_wider(id_cols="name", names_from="word", values_from="N", values_fill=0)

产量

# A tibble: 3 x 4
name hello test goodbye
<chr> <dbl> <dbl> <dbl>
1 brandon 3 1 2
2 john 0 5 0
3 jim 2 0 4

关于r - 如何按给定列中的值汇总 R 数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62455199/

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