#r
#r
Вопрос:
Как я могу создать фрейм данных внутри этого цикла на основе вычисленных переменных?
Скрипт:
for (i in 1:nrow(newData)){
X<-newData[i,1]
Y<-newData[i,2]
dRatio <- ((X-Xmean)/(Y-Ymean))
dataList <- data.frame(X,Y,dRatio)
}
Комментарии:
1.
dataList = cbind(newData[,1], newData[,2], (newData[,1]-Xmean)/(newData[,2]-Xmean))
Ответ №1:
Попробуйте этот векторизованный:
dataList <- newData[,1:2]
dataList$dRatio <- ((newData[,1]-Xmean)/(newData[,2]-Ymean))
Или, если вы продолжаете использовать свой собственный код:
m <- matrix(0, nrow(newData), 3)
for (i in 1:nrow(newData)){
X<-newData[i,1]
Y<-newData[i,2]
dRatio <- ((X-Xmean)/(Y-Ymean))
m[i,] <- c(X,Y,dRatio)
}
dataList <- as.data.frame(m)
Ответ №2:
Вы могли бы создать список для хранения фреймов данных вне вашего цикла
dataList<-list()
for (i in 1:nrow(newData)){
X<-newData[i,1]
Y<-newData[i,2]
dRatio <- ((X-Xmean)/(Y-Ymean))
dataList[[i]] <- data.frame(X,Y,dRatio)
}
Комментарии:
1. это создаст список, есть какой-нибудь способ создать фрейм данных?
2. Это создаст список фреймов данных.