作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将数据集从长格式转换为宽格式。
我的输入数据如下:
df <- data.frame(year = c(2011:2013),
T1 = c("a", "b", "c"),
T2 = c("b", "c", "d"),
V1 = rep(1, 3),
V2 = rep(2, 3))
期望的输出在哪里
df2 <- data.frame(year = c(2011:2013),
a = c(1, 0, 0),
b = c(2, 1, 0),
c = c(0, 2, 1),
d = c(0, 0, 2))
我认为(至少对我而言)更具挑战性的是 T1 和 V1 列是“成对”的,T2 和 V2 也是如此。试图收集列 T1 和 T2 然后传播(或 dcast)它,但似乎不起作用。
这是我尝试过的。
require(data.table)
dt <- setDT(df)
tmp <- melt(dt, measure.vars = c("T1", "T2"))
dcast(tmp, year ~ value, value.var = c("V1", "V2"))
当我对其进行 dcast 时,V1_a 和 V2_a 分别取值 1 和 2,不允许我保留“对”结构。
任何帮助将不胜感激!谢谢!
最佳答案
在这里,我们可以在 data.table
语法中使用 measure
和 patterns
library(data.table)
dcast(melt(setDT(df), measure = patterns("^T", "^V")),
year ~ value1, value.var = 'value2', fill = 0)
# year a b c d
#1: 2011 1 2 0 0
#2: 2012 0 1 2 0
#3: 2013 0 0 1 2
关于R 从长到宽,有一对柱子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59639039/
我正在尝试迭代包含温度的列表。将 csv 文件中的数据/温度附加到列表数据结构不是问题。当我想计算温度高于 6 的出现次数时,就会出现问题。我正在进行打印测试。 由于 csv.column 中的第一个
我是一名优秀的程序员,十分优秀!