0

さまざまな種の存在量データを持ついくつかのデータ フレームを組み合わせた奇妙な問題があります。rbind.fill() を使用してデータ フレームを照合しましたが、同様の種の列名の一部のスペルはわずかに異なっているため、いくつかの種では 2 ~ 3 列になっています。

これらの列のデータを結合する方法を知っている人はいますか?

簡単な例:

dat <- matrix(data=c(
    Sp.a=c(1,2,3,4,5,NA,NA,NA,NA,NA), 
    Sp.b=c(3,4,5,6,7,5,4,6,3,4), 
    Sp.c=c(4,4,4,3,2,NA,NA,NA,NA,NA), 
    Spp.A=c(NA,NA,NA,NA,NA,2,3,4,2,3), 
    Spp.C=c(NA,NA,NA,NA,NA,3,4,2,5,4)
    ), 10,5)

colnames(dat)<- c("Sp.a", "Sp.b", "Sp.c", "Spp.A", "Spp.C")

dat
      sp.a  sp.b sp.c Spp.A Spp.C
 [1,]    1    3    4    NA    NA
 [2,]    2    4    4    NA    NA
 [3,]    3    5    4    NA    NA
 [4,]    4    6    3    NA    NA
 [5,]    5    7    2    NA    NA
 [6,]   NA    5   NA     2     3
 [7,]   NA    4   NA     3     4
 [8,]   NA    6   NA     4     2
 [9,]   NA    3   NA     2     5
 [10,]  NA    4   NA     3     4

sp.a と Spp.A を 1 つの列に入れるにはどうすればよいですか? (sp.c および Spp.C についても同じ)。

助けてくれてありがとう、ポール

4

3 に答える 3

1
ColsToMerge <- c("sp.a", "Spp.A")
dat[["A.merged"]] <- 
     apply(dat[, ColsToMerge], 1, function(rr) ifelse(is.na(rr[[1]]), rr[[2]], rr[[1]]))
于 2013-10-30T19:23:34.093 に答える