如何在R语言中对数据框指定列的行进行关联混洗且保留其余列?
在R中对数据框指定列进行关联混洗并保留其他列不变
要实现对数据框中y和offset_1列关联混洗(两行值同步打乱,而非独立打乱),同时保持x1、x2列不变,核心思路是生成一组随机行索引,并用该索引同时重排目标列。具体操作如下:
步骤1:生成随机行索引
使用sample()函数生成与数据行数一致的随机排列索引,确保每一行仅被选中一次:
shuffle_idx <- sample(nrow(data_1))
步骤2:创建数据副本并执行混洗
为避免修改原始数据,先复制数据框,再对目标列应用随机索引完成关联混洗:
# 复制原数据到新对象 data_shuffled <- data_1 # 对y和offset_1列进行关联混洗 data_shuffled[, c("y", "offset_1")] <- data_shuffled[shuffle_idx, c("y", "offset_1")]
验证效果
可以通过对比原数据和混洗后的数据,确认目标列已同步打乱,其他列保持原样:
# 查看原数据前5行 head(data_1, 5) # 查看混洗后数据前5行 head(data_shuffled, 5)
内容的提问来源于stack exchange,提问作者Sergio Nolazco
相关产品推荐
相关产品推荐

