我有一个由 foreach(..., .combine= rbind) 循环制成的数据框对象。命名其列后,由于 write.dbf 函数,我将其保存在 .dbf 文件中。但是当我在 LibreOffice Calc 中打开匹配文件时,我的列名发生了变化,并且附加了一些“,N,19,9”、“,N,5,0”或“,N,19,10”(等)给他们。
我正在使用 Linux Fedora 机器和 RStudio 工作。
> c("ID","X","Y",unlist(LU_Named),paste(animalUsed,"_p",sep=""),"Alti_me20","Alti_ra20","Slope_me20","Slope_ra20")
> print(names(datF_output))
> write.dbf(datF_output, paste(Base2OutPath,"rANIMALS",sep = "/"), factor2char = FALSE, max_nchar = 254)
print(namesdatF_output)) 给我正确的名字:
[1] "ID" "X" "Y" "broad_AR" "conif_AR"
[6] "arable_AR" "imprg_AR" "rough_AR" "neutrg_AR" "calcg_AR"
[11] "acidg_AR" "fen_AR" "heath_AR" "heathg_AR" "bog_AR"
[16] "monta_AR" "inroc_AR" "saltwat_AR" "freshw_AR" "slitro_AR"
[21] "slitse_AR" "litroc_AR" "litsed_AR" "saltma_AR" "urban_AR"
[26] "suburb_AR" "Sheep_2003_p" "Alti_me20" "Alti_ra20" "Slope_me20"
[31] "Slope_ra20"
但我文件中的名称是:
ID,N,5,0 X,N,19,10 Y,N,19,9 broad_AR,N,19,9 conif_AR,N,19,9 arable_AR,N,19,9 imprg_AR,N,19,9 rough_AR,N,19,10 neutrg_AR,N,19,10 calcg_AR,N,19,9 acidg_AR,N,19,10 fen_AR,N,19,11 heath_AR,N,19,9 heathg_AR,N,19,11 bog_AR,N,19,9 monta_AR,N,19,10 inroc_AR,N,19,9 saltwat_AR,N,19,10 freshw_AR,N,19,9 slitro_AR,N,19,10 slitse_AR,N,19,10 litroc_AR,N,19,15 litsed_AR,N,19,11 saltma_AR,N,19,9 urban_AR,N,19,10 suburb_AR,N,19,11 Sheep_2003,N,19,13 Alti_me20,N,19,13 Alti_ra20,N,19,13 Slope_me20,N,19,14 Slope_ra20,N,19,14
最佳答案
write.dbf() changes my dataframe columns' names
不,它没有;只是 LibreOffice/OpenOffice 以一种将附加信息(字段类型、宽度和小数)附加到名称的方式处理 DBF 文件,cf。 Importing and Exporting dBASE Files (...不要更改或删除导入文件中的第一行。此行包含 dBASE 数据库所需的信息)和 Connecting dBase (xBase) .旁注:Excel 不显示该信息。
关于R : write. dbf() 更改了我的数据框列的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57292947/