使用for循环提示输入r

时间:2017-08-22 22:00:38

标签: r

我不确定如何将这个问题浓缩成一个好标题,所以我对标题的模糊性表示道歉。我的问题更复杂(我认为)。

我正在尝试编写一个代码,以便我需要做的就是输入我的原始数据,并且一旦我编写代码,R就会为我完成所有的统计分析。

它必须分阶段完成,在他们的时刻,我只是想创建一个函数来为我创建标准曲线。

我的第一个障碍是for循环,我用它来提示我按重复顺序输入我的数据行。我希望代码返回:

rep1 = c(1,2,3,4)
rep2 = c(1,2,3,4)
rep3 = c(1,2,3,4) (as an example)

为此我使用了以下代码,它返回一个非数字的数据列表,它提示我输入:

for(x in c(1:3)){

assign(paste("rep", x, sep = ""),readline("Enter Dataset"))

}

为了解决这个问题,我尝试使用as.numeric()命令来获取数字向量,如下所示:

for(x in c(1:3)){

as.numeric(unlist(strsplit(assign(paste("rep", x, sep = ""),
readline("Enter Dataset")), ",")))

}

但是,当我输入数据时,此代码只返回与第一个代码相同的响应。

是否有人能够提供替代方法,或者能够获得第二个代码以返回上面命名的数字向量。

作为纯粹的美学补充,我还希望代码能够按如下方式请求数据:

Enter Dataset 1
Enter Dataset 2
Enter Dataset 3

取决于请求for循环中的哪个迭代。

这是我的代码的简化版本,实际上我有更多的重复,这些随每个实验而变化;我可以编写代码来考虑这一点,但它不如这个简化版本那么整洁。

非常感谢。

1 个答案:

答案 0 :(得分:0)

我不确定为什么要将整行包装在as.numeric中 - 请注意readline()函数是读取输入的函数。请尝试以下代码:

for(x in c(1:3)){
  assign(paste("rep", x, sep = ""),
         as.numeric(unlist(strsplit(readline(paste(c("Enter Dataset ", x, ": "), collapse = "")), ","))))
}