对 R 非常陌生并且苦于不知道该问什么,在这里找到了一个类似的问题
How to split a character vector into data frame?
但这有固定的长度,我一直无法针对我的问题进行调整
我在 R 的数组中有一些数据
TEST <- c("Value01:100|Value02:200|Value03:300|","Value04:1|Value05:2|",
"StillAValueButNamesAreNotConsistent:12345.6789|",
"AlsoNotAllLinesAreTheSameLength:1|")
数据成对存储,我希望将其拆分为一个数据帧:
Variable Value
Value01 100
Value02 200
Value03 300
Value04 1
Value05 2
StillAValueButNamesAreNotConsistent 12345.6789
AlsoNotAllLinesAreTheSameLength 1
变量名是一个字符串,值总是一个数字
任何帮助都会很棒!
谢谢
最佳答案
一个可以用tidyr
基于的解决方案。转换矢量 TEST
到 data.frame 并删除最后一个 |
从每一行开始,因为它本身没有任何意义。
现在,使用 tidyr::separate_rows
基于 |
扩展行然后使用 tidyr::separate
将数据分成 2 列功能。
library(dplyr)
library(tidyr)
data.frame(TEST) %>%
mutate(TEST = gsub("\\|$","",TEST)) %>%
separate_rows(TEST, sep = "[|]") %>%
separate(TEST, c("Variable", "Value"), ":")
# Variable Value
# 1 Value01 100
# 2 Value02 200
# 3 Value03 300
# 4 Value04 1
# 5 Value05 2
# 6 StillAValueButNamesAreNotConsistent 12345.6789
# 7 AlsoNotAllLinesAreTheSameLength 1
关于R将数组拆分为数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51573155/