na.locf 函数正在将 R 中的数据帧值从 int 更改为 char?

na.locf function is changing data frame values from int to char in R?

我有一个大数据框,我试图填充其中的一些缺失值。我试图使用 na.locf 函数,但它正在将数据框中的所有值更改为字符。我的数据是死亡率数据,NA 仅在没有记录死亡的行中(前 6 列在那里,但其余列有 NA)。我的 df 叫做 "City"。有没有更好的填充数据的方法?我确实遇到过其他城市 20-150 周未记录数据的情况。显然我不想要这些 na.locf。

City <- na.locf(City)

它正在将您的数据框强制转换为矩阵。而是这样做:

City[] <- lapply(City, na.locf0)

或者如果您只想将它​​应用于 jx 中的列(它可以是整数位置的向量、逻辑向量或列名),则:

City[jx] <- lapply(City[jx], na.locf0)

或不覆盖将 City 分配给 City2,然后使用上面的 te 对 City2 进行操作,否则使用 one-liner:

City2 <- replace(City, TRUE, lapply(City, na.locf0))

City2 <- replace(City, jx, lapply(City[jx], na.locf0))

考虑使用 tidyr::fill() 而不是 na.locf()