R:具有空char字符串的数据框列在读取时变为NA

时间:2015-09-04 11:14:22

标签: r dataframe

想法是通过rbind数据框创建和更新目录。这包括顺序读取和写入文件。对于某些数据帧,某些字符串列不包含任何值(空白chr字符串“”)时出现问题。不知何故,R将这些列视为NULL值并显然删除它们。绑定这些数据帧会产生NA,而不是所需的“”。

df <- data.frame(a = 1:5, b = "", stringsAsFactors = F)
write.csv(df, "df.csv", row.names = F)
df <- read.csv("df.csv", stringsAsFactors = F)
df <- rbind(df, data.frame(a = 1:5, b = "a", stringsAsFactors = F))
write.csv(df, "df.csv", row.names = F)
df <- read.csv("df.csv", stringsAsFactors = F)

> df
   a    b
1  1 <NA>
2  2 <NA>
3  3 <NA>
4  4 <NA>
5  5 <NA>
6  1    a
7  2    a
8  3    a
9  4    a
10 5    a

显然,期望的输出包含“”而不是NA。

1 个答案:

答案 0 :(得分:3)

您在使用> dat$finalyear = apply(dat[,2:6], 1, function(r){max(which(r))}) > dat ids X1999 X2000 X2001 X2002 X2003 streak finalyear 1 1 TRUE TRUE TRUE FALSE FALSE TRUE 3 2 2 TRUE FALSE TRUE TRUE TRUE FALSE 5 3 3 TRUE TRUE TRUE TRUE TRUE TRUE 5 4 4 FALSE FALSE TRUE TRUE TRUE FALSE 5 5 5 TRUE TRUE TRUE TRUE FALSE TRUE 4 导入数据时应使用参数colClasses,因为此处R看不到read.csv的字符变量,因为只有“”值,因此R将“”解释为b

NA