R将数组拆分为数据框

标签 r

对 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/

相关文章:

Python 相当于 R 的 logspace_add 函数?

r - Purrr 将函数映射到除一列以外的所有列

r - 如何使用 R 创建叶序螺旋

r - qqplot 不会作图。将数据帧转换为向量时出错

r - 如何对 R 中矩阵的每一行重复计算?

r - 在循环中调用用户定义的函数以在 ggplot2 中生成自定义图

r - 计算数据集列的百分位数

r - 不确定为什么在线性回归中获取 NA 系数

r - Shiny模块之间的通信

r - 安装 RJSONIO 库时遇到问题