【问题标题】:How can I transfer long list of numeric R output into a dataframe?如何将一长串数字 R 输出传输到数据框中?
【发布时间】:2022-07-21 23:27:29
【问题描述】:

我在 SubCultCon 包中工作,它会生成一长串数字数据作为输出,我想将其放入数据帧中以进行进一步分析。比如下面最多400+。

  [1] 1 1 2 1 1 1 1 2 2 2 2 2 1 2 1 1 1 1 2 2 1 2 2 2 1 1 1 2 2 2 2 1 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1
 [55] 1 1 1 2 2 1 2 1 2 1 1 1 1 1 1 2 1 1 1 2 1 1 2 1 1 2 2 2 1 1 2 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 2 2 2 1 1 2 2

如何将这个(以及由 SubCultCon 类似生成的其他输出)移动到数据框中?我用过

test_subset <- data.frame(
  group = c(1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 1, 1,
    2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2)
)

但必须手动添加“,”

我研究了自动添加逗号的方法,但解决方案出现在列或 prettyNum 中生成的数据不适合这种情况。

感谢您的见解!

【问题讨论】:

  • 使用dput 获取结构中的值。或者您可能只需要data.frame(group = youroutputobject)
  • 看起来您没有分配产生输出的任何函数的结果。用&lt;- 分配它并给它一个名字my_output &lt;- your_SubCultCon_function(...)。然后,您可以将输出直接放入数据框中,test_subset &lt;- data.frame(group = my_output)。
  • 如果您需要更多帮助,请显示产生数字输出的代码行。
  • 你的输出看起来像一个数字向量?那么data.frame(group = youroutput) 应该可以吗?

标签: r dataframe output


【解决方案1】:
  1. 首选,将表达式分配给一个变量,以便您可以重用它:

    obj <- somefunc(...)
    #   [1] 1 1 2 1 1 1 1 2 2 2 2 2 1 2 1 1 1 1 2 2 1 2 2 2 1 1 1 2 2 2 2 1 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1
    #  [55] 1 1 1 2 2 1 2 1 2 1 1 1 1 1 1 2 1 1 1 2 1 1 2 1 1 2 2 2 1 1 2 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 2 2 2 1 1 2 2
    
  2. 如果某事是print向控制台发送某事(不好的做法)并且无法按上述方式捕获,则突出显示并复制所需的文本并运行:

    obj <- strsplit(trimws(paste(gsub("\\[[0-9]+\\]", "", readLines("clipboard")), collapse = " ")), "\\s+")[[1]]
    # Warning in readLines("clipboard") :
    #   incomplete final line found on 'clipboard'
    obj
    #   [1] "1" "1" "2" "1" "1" "1" "1" "2" "2" "2" "2" "2" "1" "2" "1" "1" "1" "1" "2" "2" "1" "2" "2" "2" "1" "1" "1" "2" "2" "2" "2"
    #  [32] "1" "1" "1" "2" "1" "2" "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" "1" "2" "1" "1" "1" "1" "1" "2" "2" "1" "2" "1"
    #  [63] "2" "1" "1" "1" "1" "1" "1" "2" "1" "1" "1" "2" "1" "1" "2" "1" "1" "2" "2" "2" "1" "1" "2" "1" "1" "1" "1" "1" "1" "1" "1"
    #  [94] "1" "1" "2" "1" "1" "1" "1" "1" "2" "2" "2" "1" "1" "2" "2"
    

    如果您需要它是整数或浮点数,则使用以下之一(或包装在原始调用中):

    obj <- as.integer(obj)
    # or
    obj <- as.numeric(obj)
    

在所有这些之后,您现在有了obj,可以根据需要将其分配给data.frame(或其他任何东西)。

【讨论】:

    猜你喜欢
    • 2018-05-20
    • 2013-06-21
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    • 2011-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多