我对R还是比较陌生,我正在尝试弄清楚如何获取包含单词列表的csv并将其随机化。我需要创建一个对象图,我想弄清楚如何用我的列表随机填充该图,或者简单地随机化列表,以便我可以随机填充该图。我可以使用什么命令来执行此操作?
答案 0 :(得分:0)
使用sample()
函数,可以重新整理CSV文件(data.frame
)中的行或重新排列对象vector
输入
如果输入的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
改组行
多次运行,每次随机播放
Test[sample(1:nrow(Test)),]
# V1 V2 V3
# 2 Earth Lily Jazz
# 4 Sweet Sour Bitter
# 3 Hell Dance Tennis
# 1 Heaven Air Flower
Test[sample(1:nrow(Test)),]
# V1 V2 V3
# 3 Hell Dance Tennis
# 1 Heaven Air Flower
# 2 Earth Lily Jazz
# 4 Sweet Sour Bitter
改组后选择2行
在将CSV文件中的行数改组后选择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
输入
如果Input有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
混排1行的CSV文件的对象
如果多次运行,结果将有所不同。
sample(Test)
# V5 V4 V1 V6 V8 V9 V2 V10 V12 V11 V7 V3
# 1 Lily Earth Heaven Jazz Dance Tennis Air Sweet Bitter Sour Hell Flower
sample(Test)
# V4 V7 V1 V12 V3 V11 V8 V5 V10 V9 V6 V2
# 1 Earth Hell Heaven Bitter Flower Sour Dance Lily Sweet Tennis Jazz Air
如果没有输入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)
# [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"