r - 转置一个df,每行作为R中的一列
问题描述
使用 dplyr 我想转置下面的数据框。
我使用 : t() 但它没有将我的列名注册为列。另外,我想命名列
df <- structure(list(anger = 4083, anticipation = 7023, disgust = 2551,
fear = 6983, joy = 4316, negative = 9234, positive = 17198,
sadness = 3690, surprise = 2996, trust = 11146), row.names = c(NA,
-1L), class = c("tbl_df", "tbl", "data.frame"))
最好按计数排列。
**sentiment count**
anger 4083
anticipation 7023
disgust 2551
fear 6983
joy 4316
negative 9234
positive 17198
sadness 3690
surprise 2996
trust 11146
解决方案
我们可以用pivot_longer()
library(dplyr)
library(tidyr)
df %>%
pivot_longer(everything(), names_to = 'sentiment', values_to = 'count') %>%
arrange(count)
# A tibble: 10 x 2
# sentiment count
# <chr> <dbl>
# 1 disgust 2551
# 2 surprise 2996
# 3 sadness 3690
# 4 anger 4083
# 5 joy 4316
# 6 fear 6983
# 7 anticipation 7023
# 8 negative 9234
# 9 trust 11146
#10 positive 17198
或与gather
gather(df, sentiment, count)
或使用melt
fromdata.table
library(data.table)
melt(setDT(df), variable.name = 'sentiment', measure.vars = names(df),
value.name = 'count')[order(count)]
或flatten
与enframe
library(tibble)
library(purrr)
flatten(df) %>%
enframe %>%
unnest(c(value))
中base R
,我们可以使用stack
stack(df)[2:1]
推荐阅读
- javascript - 我们如何、何时以及为什么在 react JavaScript 中清理我们的组件?
- reactjs - 我可以在不使用 Apollo 的情况下使用 graphql 进行反应吗?
- c++ - setup() 中的 Arduino 和对象实例化
- excel - Excel 打印到 PDF 到文件夹
- r - 创建一个计数连续变量,根据 POSIXct 日期重置为 1
- rust - 在正确的设计模式上遇到问题
- android-studio - if 语句:赋值不是表达式,在这个上下文中只允许表达式 kotlin
- java - iOS UserDefaults 跨多个应用程序共享首选项 Android 等效项
- haskell - 如何诊断堆栈构建中的 ExitFailure 1?
- spring - 如何在“SpringBootContextLoader”中有一个“@Autowired”对象?