想法是通过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。
答案 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