【发布时间】:2016-07-20 11:38:43
【问题描述】:
每个人。我是 R 的新手,所以我需要帮助。 :) 我将一些列从一个表 (ulpod) 复制到另一个 (ulpod1),但我遇到了由字符串组成的列的问题。它们显示为数字而不是字符串。例如,您可以看到 Country UK 显示为数字 18。以下是代码示例和结果:
ulpod<-read.xlsx("C:/Users/milica/Desktop/VESNAseminarski/AE&DE.xls",sheetIndex=1,sheetName="Sheet1",startRow=1,endRow=955,colIndex=c(1:14,1),header=TRUE)
options(max.print=2000000000)
ulpod1=matrix(0,90,12)
m=1
ulpod1='colnames<-'(ulpod1,c("Year","Country","CO2_pc","Fertilizer","AgrLand","Forest","CropIndex","FoodIndex","LivestIndex","RuralPopGrow","AVA","GDP_pc"))
for(i in 1:954){
if(ulpod[i,1]=="1990" || ulpod[i,1]=="2000" || ulpod[i,1]=="2005" || ulpod[i,1]=="2008" || ulpod[i,1]=="2010"){
ulpod1[m,1]=ulpod[i,1];
ulpod1[m,2]=ulpod[i,2];
ulpod1[m,3]=ulpod[i,3];
ulpod1[m,4]=ulpod[i,4];
ulpod1[m,5]=ulpod[i,5];
ulpod1[m,6]=ulpod[i,6];
ulpod1[m,7]=ulpod[i,7];
ulpod1[m,8]=ulpod[i,8];
ulpod1[m,9]=ulpod[i,9];
ulpod1[m,10]=ulpod[i,10];
ulpod1[m,11]=ulpod[i,11];
ulpod1[m,12]=ulpod[i,14];
m=m+1;
i=i+1;
}
Year=ulpod1[,1,drop=FALSE]
Country=ulpod1[,2,drop=FALSE]
CO2_pc=ulpod1[,3,drop=FALSE]
Fertilizer=ulpod1[,4,drop=FALSE]
AgrLand=ulpod1[,5,drop=FALSE]
Forest=ulpod1[,6,drop=FALSE]
CropIndex=ulpod1[,7,drop=FALSE]
FoodIndex=ulpod1[,8,drop=FALSE]
LivestIndex=ulpod1[,9,drop=FALSE]
RuralPopGrow=ulpod1[,10,drop=FALSE]
AVA=ulpod1[,11,drop=FALSE]
GDP_pc=ulpod1[,12,drop=FALSE]
调用 head(Country,10) 得到的结果是:
Country
[1,] 9
[2,] 9
[3,] 9
[4,] 9
[5,] 9
[6,] 18
[7,] 18
[8,] 18
[9,] 18
[10,] 18
因此我的数据框有问题:
P<-pdata.frame(ulpod1,index=c("Year","Country"))
错误是:
Error in x[, !na.check] : (subscript) logical subscript too long
提前谢谢...
【问题讨论】:
-
我认为您正在这样做
m <- matrix(0); m[1,1] <- factor('a'); m,因此您可以将因素更改为字符m <- matrix(0); m[1,1] <- as.character(factor('a')); m -
我已经这样做了,我将 ulpod1[m,2]=ulpod[i,2] 更改为 ulpod1[m,2]=as.character(factor(ulpod[i,2] ));或 ulpod1[m,2]=as.character(ulpod[i,2]);在 for 循环中,但我将所有列作为字符串。查看以下结果:@rawr
-
年份国家 CO2_pc [1,] "1990" "Ireland" "-0.220554400992975" [2,] "2000" "Ireland" "-0.127178700493732" [3,] "2005" "Ireland" " -0.144987627991366”[4,]“2008”“爱尔兰”“-0.187046990811592”[5,]“2010”“爱尔兰”“-0.229643587654196”[6,]“1990”“英国”“-0.1678377810150395”
标签: r dataframe regression linear-regression