【问题标题】:Replicate each cell from multiple columns 3 times and append them one below the other [duplicate]从多列中复制每个单元格 3 次,并将它们附加到另一个下方 [重复]
【发布时间】:2020-11-02 09:57:47
【问题描述】:

我有一个包含多列(总共 20 列)的 excel,每列包含多行(每列 5000 行)。我想从一行和所有列中复制每个单元格 3 次,并将它们添加到另一列下方。然后我想对下一行做同样的事情,依此类推,直到我有一个输出列,所有单元格(跨列)复制 3 次并相互附加。

输入数据(样本)

v1 v2 v3
1  3  5 
2  4  6 

等等。

输出数据(样本)

Output
1
1
1
3
3
3
5
5
5
2
2
2
4
4
4
6
6
6

我在这里发现了一个类似的问题,建议使用rep 函数。但不同的是,当整个列在那里复制时,我需要复制每列中的每个单元格。请建议我进行一些修改以使其正常工作。

谢谢。

Looping through Columns replicating each column fetched six times

【问题讨论】:

    标签: r tidyverse replicate rep


    【解决方案1】:

    您可以在这里transpose 代替unlisting:

    data.frame(x = rep(t(df), each = 3))
    
    #   x
    #1  1
    #2  1
    #3  1
    #4  3
    #5  3
    #6  3
    #7  5
    #8  5
    #9  5
    #10 2
    #11 2
    #12 2
    #13 4
    #14 4
    #15 4
    #16 6
    #17 6
    #18 6
    

    【讨论】:

    • 只是一个额外的查询:有没有办法复制不同的列单元格不同的次数?喜欢第 1 列中的单元格 5 次,第 2 列中的单元格 4 次,依此类推。其余的问题保持不变。而且,我想保留 NA 值(即它们也需要重复)
    • 我遇到了freq 函数,但我无法干净地应用它。此外,each 函数似乎将 NA 值视为 1(并且不重复?)
    • 或许,这会有所帮助stackoverflow.com/questions/2894775/…
    • 感谢您与我们联系。但我以前试过这个。有一个问题。我没有名为freq 的列。我创建了一个名为repeatations 的向量。我想做的是重复第一行第一列 59 次;第一行第二列 55 次;第一行,第三列 60 次,以此类推。然后对每一行重复相同的过程,创建一列输出。 repeatations = c(59, 55, 60, 74, 118, 34, 49)
    • 是的,所以你可以这样做df[rep(1:nrow(df), repeatations), ]
    猜你喜欢
    • 2018-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多