【发布时间】:2015-09-16 20:18:13
【问题描述】:
我有一个数据框列表,所有数据框都具有相同的结构,我使用以下代码创建:
myfiles <- list.files(patter='.csv')
mydata <- lapply(myfiles, read.csv)
names(mydata) <- gsub("\\.csv", "", myfiles)
我必须对列表中的每个数据框进行一系列计算。但首先我必须转换某些变量的数据类型。我一直在寻找答案,但一直没有找到答案。我得到的关闭是:
lapply(mydata, function(i) {
transform(mydata, PIN=as.character(PIN), Class=as.character(Class), TaxStatus=as.character(TaxStatus), TaxcCode=as.character(TaxCode), TaxRate(as.doublt(TaxRate) *.001), Amt1=(as.double(Amt1) *.01), Amt2=(as.double(Amt2) * .01))
})
但是当我运行它时,我收到以下错误:
data.frame 中的错误(PropTax1993 = 列表(PIN = c(1011000020000, 1011000030000, : 参数暗示不同的行数:1443916、1449711、1459247、1469691、1480347、1491574、1504263、1516502、1530584
我认为这是因为我列表中的数据框长度不同。我也试过:
lapply(1:length(mydata), function(i) {
transform(mydata, PIN=as.character(PIN), Class=as.character(Class), TaxStatus=as.character(TaxStatus), TaxcCode=as.character(TaxCode), TaxRate(as.doublt(TaxRate) *.001), Amt1=(as.double(Amt1) *.01), Amt2=(as.double(Amt2) * .01))
})
...但这也不起作用。我对 R (和一般编程)比较陌生。任何帮助将不胜感激。
【问题讨论】:
-
使用
transform(i, PIN=as.character(..而不是“mydata”。还有一个等号并修复TaxRate=(as.double(TaxRate)*.001)之类的错字 -
工作就像一个魅力!非常感谢皮埃尔。