In R 2.14.2 I have a matrix:

mat1=matrix(c('A','','','B'))

and I want to fill in the empty values so it becomes like this:

mat2=matrix(c('A','','','B','A','A','A','B'),2,4,byrow=T)

In other words, how do I pad the empty values?

[In Excel I would use this formula in column B: B2=if(isblank(A2),B1,A2), and copy it down].

How can I do this in R?

Henk

有帮助吗?

解决方案

Use na.locf in package zoo. The locf means last observation carried forward, which is exactly what you are doing:

library(zoo)

x <- c('A',NA,NA,'B')
na.locf(x)

[1] "A" "A" "A" "B"

But make sure you understand the difference between NA and "" (an empty string). In Excel it may be useful to use empty strings to prevent display of formulae, but in R it's much better to use NA to indicate missing values.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top