如何在R中随机化CSV文件?

如何在R中随机化CSV文件?,r,csv,R,Csv,我对R比较陌生,我正在尝试找出如何获取包含单词列表的csv并将其随机化。我需要创建一个对象的地图,我想知道如何用我的列表随机填充地图,或者简单地随机填充列表,这样我就可以随机填充地图。我可以使用什么命令来执行此操作?使用sample()函数来洗牌CSV文件中的行(data.frame)或洗牌对象的向量 输入 如果输入CSV文件有多行 Test <- read.table("MapTest.csv", header = FALSE, sep = ",") Test # V1

我对R比较陌生,我正在尝试找出如何获取包含单词列表的csv并将其随机化。我需要创建一个对象的地图,我想知道如何用我的列表随机填充地图,或者简单地随机填充列表,这样我就可以随机填充地图。我可以使用什么命令来执行此操作?

使用
sample()
函数来洗牌CSV文件中的行(
data.frame
)或洗牌对象的
向量

输入

如果输入CSV文件有多行

Test <- read.table("MapTest.csv", header = FALSE, sep = ",")
Test
#       V1    V2     V3
# 1 Heaven   Air Flower
# 2  Earth  Lily   Jazz
# 3   Hell Dance Tennis
# 4  Sweet  Sour Bitter

dim(Test)
# [1] 4 3
洗牌后选择2行

将CSV文件中的行数混洗后选择2行。多次运行它将导致每次产生不同的2行

  Test[sample(1:nrow(Test), 2),]
  #       V1   V2     V3
  # 4  Sweet Sour Bitter
  # 1 Heaven  Air Flower

  Test[sample(1:nrow(Test), 2),]
  #      V1    V2     V3
  # 4 Sweet  Sour Bitter
  # 3  Hell Dance Tennis
洗牌多行CSV文件中每行的对象

  lapply(1:nrow(Test), function(x) sample(Test[x,]))
  # [[1]]
  #       V1     V3  V2
  # 1 Heaven Flower Air
  # 
  # [[2]]
  #     V3   V2    V1
  # 2 Jazz Lily Earth
  # 
  # [[3]]
  #      V2     V3   V1
  # 3 Dance Tennis Hell
  # 
  # [[4]]
  #       V3    V1   V2
  # 4 Bitter Sweet Sour
  sample(Map_vec)
  # [1] "Flower" "Sky"    "Heaven" "Air"    "Hell"   "Water" 

  sample(Map_vec)
  # [1] "Water"  "Heaven" "Sky"    "Hell"   "Air"    "Flower"


输入

如果输入有1行:以逗号分隔的对象

  Test <- read.table("MapTest.csv", header = FALSE, sep = ",")
  dim(Test)
  # [1]  1 12
  Test
  #       V1  V2     V3    V4   V5   V6   V7    V8     V9   V10  V11    V12
  # 1 Heaven Air Flower Earth Lily Jazz Hell Dance Tennis Sweet Sour Bitter


如果没有输入CSV文件

在R中创建对象的向量

  Map_vec <- c("Hell","Heaven","Flower","Water","Air","Sky")
  Map_vec
  # [1] "Hell"   "Heaven" "Flower" "Water"  "Air"    "Sky"   

  length(Map_vec)
  # [1] 6
洗牌并从矢量中选择少量

  sample(Map_vec, 3)
  # [1] "Heaven" "Sky"    "Hell"  

  sample(Map_vec, 3)
  # [1] "Heaven" "Sky"    "Air" 

如果您将csv文件作为数据帧读取到R中(假设您的数据帧名为
dat
),则可以按如下方式随机化行顺序:
dat=dat[sample(1:nrow(dat)),]
是否要随机选择行?如果是这样,请使用
help(“sample”)
选择行号,例如,
inx
,然后选择
rnd
  sample(Map_vec)
  # [1] "Flower" "Sky"    "Heaven" "Air"    "Hell"   "Water" 

  sample(Map_vec)
  # [1] "Water"  "Heaven" "Sky"    "Hell"   "Air"    "Flower"
  sample(Map_vec, 3)
  # [1] "Heaven" "Sky"    "Hell"  

  sample(Map_vec, 3)
  # [1] "Heaven" "Sky"    "Air"