我不确定如何将这个问题浓缩成一个好标题,所以我对标题的模糊性表示道歉。我的问题更复杂(我认为)。
我正在尝试编写一个代码,以便我需要做的就是输入我的原始数据,并且一旦我编写代码,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循环中的哪个迭代。
这是我的代码的简化版本,实际上我有更多的重复,这些随每个实验而变化;我可以编写代码来考虑这一点,但它不如这个简化版本那么整洁。
非常感谢。
答案 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 = "")), ","))))
}