r - 需要从不同行收集值并组合成一行
问题描述
我是 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
在这里完成后,我知道如何选择()重要数据,但我只是不确定如何将每个名称的所有数据放入一行。请停下来:)
PS如果有人在这里有一个更好的标题的建议,将不胜感激
解决方案
使用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
推荐阅读
- javascript - Google Places API 下拉菜单未显示
- java - JPA:从另一个对象访问一个对象返回null
- android - Android OnClickListener 无限按钮使用问题
- javascript - React.js:将元素平滑地移动到新位置
- javascript - JS 到 PHP SyntaxError:JSON 中位置 0 的意外标记 N
- url - 更改 oracle apex 应用程序的基本 url
- vba - 使用 VBA 合并 Excel 中的数据
- for-loop - 套接字:打开的文件太多,goroutines 在无限循环中出错
- python - 有没有办法为 python dicts 获得智能感知?
- game-engine - “[GCController 控制器]”不包含在应用程序启动之前连接的任何控制器