【问题标题】:import data into r with some variables as list/vectors将一些变量作为列表/向量导入数据到 r
【发布时间】:2016-12-05 15:51:10
【问题描述】:

我有一些数据想带入 R,但我不确定创建变量的最佳方法。基本上,我的变量是这样的:

    ItemName: "c34"
    Item Height: 170
    ItemX = list(0, 1, 2, 3, 5 )
    ItemY = list(50, 30, 20, 10, 5)
    (...)
    ItemName: "c36"
    Item Height: 180
    ItemX = list(0, 1, 2, 3, 5, 8 )
    ItemY = list(55.2, 30.1, 20, 10, 5, 0.1)

如果不是可变长度列表的两个变量,我将简单地使用具有列名的数据框的解决方案:

["ItemName", "ItemHeight", "ItemX", "ItemY"] 

既然“ItemX”和“ItemY”是可变长度列表/向量,那么将其导入 R 的最佳方法是什么,以便我可以做一些简单的事情,例如为每个 Item 绘制 ItemY 与 ItemX 或进行回归 ItemY ~ItemX ?

谢谢

GT

【问题讨论】:

  • 我们在看什么?您文件的一部分?
  • @Rich Scriven,是的,这是我要解析为 R 的文件的一部分。我添加了“list”关键字只是为了表示,但这些值实际上作为逗号分隔值存储在文件中。
  • 您可能需要提供文件样本,这样人们会更有帮助地展示准确的导入方式。

标签: r variables import variable-length


【解决方案1】:

您可以尝试从不同的角度查看数据并使用 tidyr 包和方法。以下是 R-Studio 的一篇文章,更详细地解释了该方法:R-Studio: Introducing Tidyr

您的数据格式将是一个如下所示的数据框:

ItemName  ItemHeight   ItemX   ItemY
"c34"     170           0       50
"c34"     170           1       30

通过重复 ItemName 和 ItemHeight 列并为每个 x、y 对添加一个新行,您可以获得所有数据,而不会被具有不同数量的 x、y 对的数据所困扰。

【讨论】:

    【解决方案2】:

    也许我会尝试将 ItemX 和 ItemY 读取为 data.frame df 中的字符串,然后评估每个元素:

    df[, c("ItemX", "ItemY")] <- as.data.frame(apply(df[, c("ItemX", "ItemY")], 
                                                     1:2,
                                                     function(x) eval(parse(text = x))))
    

    如果每个项目的列表长度不同,不知道这是否可行...

    希望能有所帮助!

    【讨论】:

    • 我正在尝试稍后在这里发帖。谢谢
    猜你喜欢
    • 2023-04-11
    • 2018-03-15
    • 1970-01-01
    • 1970-01-01
    • 2021-03-02
    • 2017-05-25
    • 2015-08-15
    • 1970-01-01
    • 2012-12-12
    相关资源
    最近更新 更多