39

NA行のデータフレームがあります:

 df = data.frame(c("classA", NA, "classB"), t(data.frame(rep("A", 5), rep(NA, 5), rep("B", 5))))
 rownames(df) <- c(1,2,3)
 colnames(df) <- c("class", paste("Year", 1:5, sep = ""))

 > df
   class Year1 Year2 Year3 Year4 Year5
1 classA     A     A     A     A     A
2   <NA>  <NA>  <NA>  <NA>  <NA>  <NA>
3 classB     B     B     B     B     B

classA の行と classB の行の間にスペースを空けたかったので、わざと空の行 (NA 行) を導入しました。

ここで、 を空白に置き換え<NA>て、2 行目が空の行のように見えるようにします。

私は試した:

 df[is.na(df)] <- ""

 df[df == "NA"] <- ""

しかし、それはうまくいきませんでした..

何か案は?ありがとう!

4

2 に答える 2

46

別の方法:

df <- sapply(df, as.character) # since your values are `factor`
df[is.na(df)] <- 0

ゼロの代わりに空白が必要な場合

> df <- sapply(df, as.character)
> df[is.na(df)] <- " "
> df
     class    Year1 Year2 Year3 Year4 Year5
[1,] "classA" "A"   "A"   "A"   "A"   "A"  
[2,] " "      " "   " "   " "   " "   " "  
[3,] "classB" "B"   "B"   "B"   "B"   "B"  

data.frame が必要な場合は、使用するだけですas.data.drame

> as.data.frame(df)
   class Year1 Year2 Year3 Year4 Year5
1 classA     A     A     A     A     A
2                                     
3 classB     B     B     B     B     B
于 2013-10-25T14:38:48.460 に答える