【发布时间】:2017-03-20 09:57:40
【问题描述】:
我得到了以下格式的结果:
Parameter Wert
...
99 se.m 0.1000
100 se.m 0.1000
101 se.st 0.5000
102 se.st 0.500
...
我想将 Parameter 列拆分为两列:Parameter 和 Insentität。应该在点. 所在的位置进行拆分。然后在结果列Intensität 中,我想用2 的值替换所有m,并用3 的值替换所有st。结果应如下所示:
Parameter Intensität Wert
...
99 se 2 0.4000
100 se 2 0.0396
101 se 3 0.2702
102 se 3 1.1566
...
我已经设法获得了这种格式,但我相信还有一种更优雅的方法。
我获得结果的方式很笨拙。我最初在输出中有 2 列:se.m 和 se.st。我已经手动更改了列名:
colnames(results) <- c("2", "3")
然后将两列合并为一列。然后我在每一行中添加了一个包含字符se 的列。
results <- melt(results)
cbind( Parameter ="se", results)
我知道还有其他替代方法。例如,通过使用来自tidyr 的extract,但我无法正确获取表达式语法。还有stringr 包,我可以使用str_match 函数或者strsplit。所有这些看起来都很棒,但我似乎无法将它们应用于我的问题。我被困在这里。有类似的问题,但我找不到适合我的解决方案。
PS:我喜欢任何输入 - cmets、批评、提示。我是一名学习者,任何建议对我来说都很有价值。
【问题讨论】:
-
检查 Rpubs 以使用 dplyr 和 tidyr 进行数据处理。我是在问了这个问题后才找到的。
标签: r extract stringr strsplit