在該R 2.14.2我有一個矩陣:填充列值?
mat1=matrix(c('A','','','B'))
,我想填補空值,所以變成這樣:
mat2=matrix(c('A','','','B','A','A','A','B'),2,4,byrow=T)
換句話說,我怎麼墊空值? [在Excel中,我會在列B中使用此公式:B2 = if(isblank(A2),B1,A2),並將其複製下來]。
我該如何在R中做到這一點?
亨克
在該R 2.14.2我有一個矩陣:填充列值?
mat1=matrix(c('A','','','B'))
,我想填補空值,所以變成這樣:
mat2=matrix(c('A','','','B','A','A','A','B'),2,4,byrow=T)
換句話說,我怎麼墊空值? [在Excel中,我會在列B中使用此公式:B2 = if(isblank(A2),B1,A2),並將其複製下來]。
我該如何在R中做到這一點?
亨克
使用na.locf
封裝zoo
。該locf
指last observation carried forward
,這是你在做什麼:
library(zoo)
x <- c('A',NA,NA,'B')
na.locf(x)
[1] "A" "A" "A" "B"
但要確保你瞭解NA
和""
(空字符串)之間的差異。在Excel中,使用空字符串以防止顯示公式可能會很有用,但在R中,使用NA
來指示缺失值會更好。
[已解決] 非常感謝! 我有兩個n/a和空格,現在意識到我可以使用:mat = csv.read('myfile.csv',na.strings = c('n/a','')換句話說,你可以設置更多的值作爲NA。 – Henk 2012-07-19 15:28:39
爲什麼不使用類似這樣的東西** mat1 [nchar(mat1)== 0] < - 'A'**(您可以用像Excel例子中B1列這樣的矢量替換'A') – dickoa 2012-07-19 10:30:08