错误:`i`必须有一个维度,而不是2个维度。在R中的CreateDataPartition中
我正在运行一段代码,之前我已经成功运行过多次,现在我遇到了一个奇怪的错误,我不明白:错误:`i`必须有一个维度,而不是2个维度。在R中的CreateDataPartition中,r,r-caret,R,R Caret,我正在运行一段代码,之前我已经成功运行过多次,现在我遇到了一个奇怪的错误,我不明白: ### Data Splitting trainIndex <- createDataPartition(dataset$isTerminated, p = .8, list = FALSE, times = 1) head(trainIndex) # Step
### Data Splitting
trainIndex <- createDataPartition(dataset$isTerminated, p = .8,
list = FALSE,
times = 1)
head(trainIndex)
# Step 2: Create the training and testing datasets
testData <- dataset[-trainIndex, ]
trainingData <- dataset[trainIndex, ]
数据拆分
trainIndex我通过使用sample.split()绕过了它。但我不确定是什么导致了这个问题
sample = sample.split(dataset$isTerminated, SplitRatio = 0.75)
trainingData = subset(dataset, sample == TRUE)
testData = subset(dataset, sample == FALSE)
这似乎很好代码适用于data.frame:
library(caret)
dataset = data.frame(isTerminated=sample(0:1,100,replace=TRUE),
value=runif(100))
trainIndex <- createDataPartition(dataset$isTerminated, p = .8,
list = FALSE,
times = 1)
testData <- dataset[-trainIndex, ]
trainingData <- dataset[trainIndex, ]
我真的不知道为什么添加-trainIndex会起作用。。如果将其转换为向量,您可以看到它也可以工作:
dataset[c(trainIndex),]
# A tibble: 80 x 2
isTerminated value
<int> <dbl>
1 0 0.412
2 1 0.488
3 1 0.395
4 0 0.212
5 0 0.0229
6 0 0.0395
7 0 0.883
8 0 0.601
9 0 0.524
10 0 0.998
# … with 70 more rows
数据集[c(列车索引),]
#一个tibble:80x2
不定值
1 0 0.412
2 1 0.488
3 1 0.395
4 0 0.212
5 0 0.0229
6 0 0.0395
7 0 0.883
8 0 0.601
9 0 0.524
10 0 0.998
#…还有70行
希望更精通tibble的人能加入进来,但是的,底线是要知道它是data.frame还是tibble。检查数据的类别。如果是TIBLE,请将其转换为data.frame。在我看来,这就像是一个回归,因为我对以前的工作代码也有相同的错误
# df is a tibble
t <- df[df[, 'condition'] == 'foo','t'][[1]][[1]]
Error: `i` must have one dimension, not 2.
#df是一个tible
T
# df is a tibble
t <- df[df[, 'condition'] == 'foo','t'][[1]][[1]]
Error: `i` must have one dimension, not 2.
df <- as.data.frame(df)
t <- df[df[, 'condition'] == 'foo','t'][[1]][[1]]