Tôi có một khung dữ liệu như thế nàycột điền với cột trước nếu NA
df <- data.frame(v1 = 10:14, v2 = c(NA, 1, NA, 3, 6), v3 = c(1, NA, NA, 9, 4))
v1 v2 v3
1 10 NA 1
2 11 1 NA
3 12 NA NA
4 13 3 9
5 14 6 4
bây giờ tôi muốn điền NAS với giá trị của cột trước, vì vậy nó trông như thế này:
v1 v2 v3
1 10 10 1
2 11 1 1
3 12 12 12
4 13 3 9
5 14 6 4
tôi biết làm thế nào để làm điều này bằng tay, như thế này:
df$v2 <- ifelse(is.na(df$v2), df$v1, df$v2)
làm thế nào tôi có thể tự động này cho một khung dữ liệu đầy đủ với nhiều cột?
'na.locf' có thể được áp dụng cho toàn bộ khung dữ liệu cùng một lúc để 'na.locf (df, na.rm = FALSE)' sẽ hoạt động. (Trong trường hợp cụ thể này, 'na.rm = FALSE' không làm gì cả, nhưng nếu các hàng đầu là tất cả các NA thì nó sẽ giữ chúng.) –
@ G.Gothendieck tìm hiểu nó, Cảm ơn :-) – Wen