r - 如何传播计数数据
问题描述
我有一个如下示例数据。
site <- c("a", "b")
RankA <- c("3","1")
RankB <- c("1","3")
RankC <- c("0","1")
rawdata <- cbind(site, RankA, RankB, RankC)
我想像“newdata”一样进行转换。
site <- c("a","a","a","a", "b","b","b","b","b")
Rank <- c("A","A","A","B","A","B","B","B","C")
newdata<- cbind(site,Rank)
谢谢,
#编辑
rawdata 是关于该站点的评估调查的结果。对于每个站点,记录每个等级(A 到 C)的评价次数。例如,“站点 a”对 RankA 有 3 票,对 RankB 有 1 票,对 RankC 有 0 票。我想将此数据转换为“newdata”,其中每个评估都是一行。
解决方案
试试这个,使用dplyr
and tidyr
:
site <- c("a", "b")
RankA <- c("3","1")
RankB <- c("1","3")
RankC <- c("0","1")
df <- data.frame(site, A = RankA, B = RankB, C = RankC)
df <- tidyr::pivot_longer(df, cols = 2:4, values_to = 'rep', names_to = 'rank')
df <- df[rep(1:nrow(df), df$rep),] %>%
select(-rep)
df
推荐阅读
- xcode - 如何在 Xcode 中调试 clang?
- python - 对于 remove() 函数索引超出范围错误
- reactjs - 如何在 TypeScript 中正确键入通用 React 函数组件
- css - 如何将第一张图像中的圆锥渐变 css 制作成第二张图像
- scala - 像 3600 * 24 这样的表达式是在编译时评估的吗?
- codeigniter - Codeigniter 附加 www 获取 baseurl
- javascript - 如何使用样式组件在按钮组件中居中文本?
- excel - 使用 VBA 过滤日期
- linux - 为什么 struct tm 的 tm_gmtoff 字段未在手册页中记录?
- javascript - 在 JavaScript 中创建 CSS 过渡的问题?