我是R的新手。我有一个带有多列的大文件,并且被要求将数据分成两部分。我让R将数据随机分为70%分成一个名为nTrain
的组,并将30%分为一个名为nTest
的组。
我能够随机拆分数据,但是现在我需要计算70%随机数据中特定列的平均值,并对30%随机数据执行相同的操作。有人可以解释怎么做吗?
谢谢。
如果它有助于了解我的处境,那么这就是我到目前为止在R中的经验:
length(DataFile)
(nData=nrow(DataFile))
DataFile
set.seed(0)
(trainIdx<- sample(seq(1,nrow(DataFile)), floor(nrow(DataFile)*0.70)))
> (nTrain=length(trainIdx))
[1] 15129
> (nTest=nData-nTrain)
[1] 6484
答案 0 :(得分:0)
欢迎使用Stackoverflow!
R
惯例,对于大多数类型的配属,您都应坚持使用<-
运算符(您可以找到更多信息here
和
here)。length(DataFile)
之后的输出)。让我们逐步进行此操作。
set.seed(1701)
DataFile <- sample(seq(0, 1, 0.01), 10000, replace = TRUE)
# This randomizes the order
DataSet <- sample(DataFile)
split <- length(DataSet) * 0.7
# You use length() for one-dimensional objects, and
# nrow() for matrices, tables, etc.
DataTrain <- head(DataSet, split)
DataTest <- tail(DataSet, length(DataSet) - split)
# This approach avoids rounding errors when splitting and
# as our dataset is already randomized we can sample linearly.
> mean(DataTrain)
[1] 0.5029891
> mean(DataTest)
[1] 0.496056