0

既存の変数に基づいて新しい変数を作成し直そうとしています。次のコードは、私が思いついたものです。これを行うより良い方法はありますか?たとえば、事前に個別のマトリックスを作成する必要がありますか?それとも、既存のデータセットに新しい変数を簡単に作成できますか?

rec<-c("col1", "col2", "col3", "col4")

recmat<-as.data.frame(matrix(NA,800, length(rec)))
recmat[, 1:length(rec)][0<=dat[,rec] & 1>=dat[,rec]]<-0
recmat[, 1:length(rec)][2<=dat[,rec] & dat[,rec]<=4]<-1

dat の最初の行は次のようになります。

     col1    col2   col3       col4
1       NA     NA     NA         NA
2       NA     NA     NA         NA
3       NA     NA     NA          1
4        0     NA     NA         NA
5        0     NA     NA         NA
6       NA     NA     NA         NA
7        0      0      0         NA
4

1 に答える 1

0

次のように、ベクトル化された関数をデータ フレームに適用できます。

f=function(x) ifelse((x>=0 & x<=1),0,ifelse((x>=2 & x<=4),1,NA))
recmat<-f(dat)

または多分

recmat<-f(dat[,rec])

datどのように見えるかの例を提供していただけると助かります。

于 2013-08-05T09:34:32.740 に答える