【问题标题】:In R, how do I change the values for a specific column in a random set of rows?在 R 中,如何更改随机行集中特定列的值?
【发布时间】:2017-03-15 14:32:45
【问题描述】:

我一直在阅读另一个关于如何对数据帧的行进行随机子集化的问题,但我无法弄清楚如何将数据帧中特定列的值更改为随机的行子集。

来自Sample random rows in dataframe

df = data.frame(matrix(rnorm(20), nrow=10)) 
df[sample(nrow(df), 3), ]

例如,如何将 X1 列中随机选择的行替换为 0?

谢谢!

【问题讨论】:

    标签: r dataframe subset


    【解决方案1】:

    您只需要在设置新值之前选择列。

    df = data.frame(matrix(rnorm(20), nrow=10)) 
    df[sample(nrow(df), 3), 'X1'] <- 0
    

    【讨论】:

    • 感谢您的回答!
    【解决方案2】:

    或者你可以使用data.table包:

    library(data.table)
    df = data.table(matrix(rnorm(20), nrow=10))
    df[sample(.N,3), V1 := 0]
    

    除了默认的 colnames 将被更改为 'V1''V2'...

    【讨论】:

    • 谢谢,我会调查的!
    猜你喜欢
    • 2022-01-20
    • 2023-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    • 2020-07-03
    • 2021-07-25
    相关资源
    最近更新 更多