【发布时间】:2018-09-24 06:24:31
【问题描述】:
在这里学习 R 代码。这是我的数据集,然后我将详细解释我要完成的工作:
alp <- c("a", "b", "c","d", "e", "f")
num <- c(1:6)
my.set <- data.frame(num, alp)
看起来像这样:
num alp
1 a
2 b
3 c
4 d
5 e
6 f
6 行 2 列的数据集。 (抱歉,我花了很多时间把这些都写出来,但我不知道如何为数据集在屏幕上添加空格)
我需要创建一个for-loop 或一个函数,我可以在其中随机选择多行(0 到 6 行之间)并切换它们各自的列值。换句话说,选择我们剥离标签的随机行数,并将num 值与alp 值翻转。
让它看起来像这样(假设选择了 2 行进行更改):
num alp
a 1
2 b
3 c
d 4
5 e
6 f
我是这样做的:对于每一行,我都想掷硬币。如果它是正面(或 0),那么它的列值会被切换。如果是尾巴(或 1),则不会发生任何事情。
到目前为止,我已经有了这个,但它正在抛出错误消息:
for (j in 1:nrow(my.set)) {
flip <- sample(0:1, 1, replace = TRUE)
if (flip==0) {
my.set[j,1:2] <- my.set[j,2:1]
} else {
my.set[j,1:2] <- my.set[j,1:2]
}
}
那么我做错了什么,我该如何解决这个问题?任何帮助表示赞赏!
谢谢!
【问题讨论】:
标签: r function for-loop random