MK *_*uda 2 random r shuffle sample dataframe
我有一个尺寸为 24,523x3,468 的数据框,我想打乱该数据框的条目。例如,我有一个简单的数据框
df <- data.frame(c1=c(1, 1.5, 2, 4), c2=c(1.1, 1.6, 3, 3.2), c3=c(2.1, 2.4, 1.4, 1.7))
df_shuffled = transform(df, c2 = sample(c2))
Run Code Online (Sandbox Code Playgroud)
它适用于一列,但我想洗牌所有列或所有行。我试过
col = colnames(df)
for (i in 1:ncol(df)){
df2 = transform(df, col[i] = sample(col[i]))
}
df2
Run Code Online (Sandbox Code Playgroud)
它会产生这样的错误
我也尝试过这个来洗牌,但它只洗牌行和列
df_shuf = df[sample(rownames(df), nrow(df)), sample(colnames(df), ncol(df))]
df_shuf
Run Code Online (Sandbox Code Playgroud)
如何使用 I 的循环按行和列对数据帧 df 的条目进行洗牌?
解决您的问题的一种方法:
df[] = lapply(df, sample)
Run Code Online (Sandbox Code Playgroud)