- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有一个 data.table 如下:
station w_1 w_2
1: 1757 ar_2d lm_h_step
2: 2171 lm_h_step lm_h_step
3: 2812 lm_h_step lm_h_step
4: 4501 lm_h_step lm_h_step
5: 4642 ar_2d lm_h_step
6: 5029 ar_2d lm_h_step
7: 5480 lm_h_step lm_h_step
8: 5779 ar_2d ar_2d
9: 5792 ar_1d ar_2d
我想列出每个站的方法的频率。
所以预期的结果是
1757 2171 2812 ...
lm_h_step 1 2 2
ar_2d 1 0 0
ar_1d 0 0 0 ...
到目前为止我已经尝试过:
apply(dat,1,table)
正在产生正确的结果,但格式不正确。
有什么想法吗?
数据输出:
structure(list(station = c(1757L, 2171L, 2812L, 4501L, 4642L,
5029L, 5480L, 5779L, 5792L), w_1 = c("ar_2d", "lm_h_step", "lm_h_step",
"lm_h_step", "ar_2d", "ar_2d", "lm_h_step", "ar_2d", "ar_2d"),
w_2 = c("lm_h_step", "lm_h_step", "lm_h_step", "lm_h_step",
"lm_h_step", "lm_h_step", "lm_h_step", "ar_2d", "ar_2d")), .Names = c("station",
"w_1", "w_2"), class = c("data.table", "data.frame"), row.names = c(NA,
-9L))
最佳答案
尝试dcast/melt
组合
对于data.table
v >= 1.9.5使用这个
dcast(melt(dat, "station"), value ~ station, length)
# value 1757 2171 2812 4501 4642 5029 5480 5779 5792
# 1: ar_1d 0 0 0 0 0 0 0 0 1
# 2: ar_2d 1 0 0 0 1 1 0 2 1
# 3: lm_h_step 1 2 2 2 1 1 2 0 0
对于 data.table
v < 1.9.5,您还需要加载 reshape2
并显式使用 dcast.data。 table
(因为 reshape2::dcast
不是通用的并且没有 dcast.data.table 方法)。
reshape2::melt
是通用的(请参阅methods(melt)
)并具有 melt.data.table
> 方法,这样你就不需要告诉它任何东西。它会根据dat
class
知道你想使用哪种方法
require(reshape2)
dcast.data.table(melt(dat, "station"), value ~ station, length)
# value 1757 2171 2812 4501 4642 5029 5480 5779 5792
# 1: ar_1d 0 0 0 0 0 0 0 0 1
# 2: ar_2d 1 0 0 0 1 1 0 2 1
# 3: lm_h_step 1 2 2 2 1 1 2 0 0
如果您对严格使用 data.table
方法不挑剔,您还可以使用 reshape2::recast
(请参阅@shadows 注释),它是上面的解决方案,但使用 reshape2::dcast
而不是 dcast.data.table
,因此将返回一个 data.frame
对象而不是 >数据表
recast(dat, value ~ station, id.var = "station", length)
# value 1757 2171 2812 4501 4642 5029 5480 5779 5792
# 1 ar_1d 0 0 0 0 0 0 0 0 1
# 2 ar_2d 1 0 0 0 1 1 0 2 1
# 3 lm_h_step 1 2 2 2 1 1 2 0 0
关于data.table 中的行制表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29649194/
如何使用 tabulate 包在 python 中合并多个表? append 在 python 中连接两个表时不起作用。这些表是使用 python 中的 tabulate 包实现的。 table_1
我想使用制表法将两个表格并排显示。 我的方法: test_table1 = tabulate([['Alice', 24], ['Bob', 19]]) test_table2 = tabulate(
我之前在大学学习过 Java 的为期 3 个月的短期类(class)(唯一的项目是编写数独游戏)。 我想学习一种对于一般自动化任务来说最流行的编程语言。到目前为止,我已经选择了 AHK,它帮助我完成了
我的脚本有问题.. 用户需要向一个 div 输入数据,当一个 div 已满(4 个字符)时,脚本应自动移动到下一个字段。 在处理输入时,这非常有效: http://jsfiddle.net/4m5fg
我正在使用 MySQL Workbench 来编写一些查询。我想设置 MySQL 编辑器,以便在按 Enter 键换行时在下一行中保持对齐或水平制表。就像编程编辑通常所做的那样,我想你就是我的意思。
我正在尝试:(1) 估计只有因变量发生变化的多个模型 (2) 使用 Stargazer 包将结果制表 以下代码有效,但我必须为每个模型重复一行代码: library(stargazer)
我是一名优秀的程序员,十分优秀!