我正在尝试执行这个简单的任务,所有变量都已正确初始化,但由于某种原因,这不起作用。我做错了什么?
for(i in 1:117)
{x = runif(1,0,1)
if(x<0.5)
testframe = rbind(utilities[i,])
else
trainframe = rbind(utilities[i,])}
答案 0 :(得分:2)
在循环中,在每次循环运行中都会覆盖testframe
和trainframe
。你可以使用testframe <- rbind(testframe, utilities[i, ])
,但效率很低。
这是另一种没有循环的方法:
x <- sample(c(TRUE, FALSE), 117, replace = TRUE)
testframe <- utilities[x, ]
trainframe <- utilities[!x, ]
您还可以创建包含两个子集的列表(基于向量x
):
split(utilities, x)
答案 1 :(得分:0)
如果您坚持使用for循环,您始终可以将结果保存为空列表并将项目添加到该列表中:
这是未经测试的示例(因为我没有“实用程序”数据):
testframe <- list()
trainframe <- list()
for(i in 1:117)
{x = runif(1,0,1)
if(x<0.5)
testframe[i] <- utilities[i,] ##whatever you want to save here
else
trainframe = utilities[i,]
}
希望这有帮助