私はこの問題で立ち往生しており、アドバイスをいただければ幸いです。私は次のものを持っていますdata.frame
:
c1 <- factor(c("a","a","a","a"))
c2 <- factor(c("b","b","y","b"))
c3 <- factor(c("c","y","z","c"))
c4 <- factor(c("y","z","","y"))
c5 <- factor(c("z","","","z"))
x <- data.frame(c1,c2,c3,c4,c5)
したがって、このデータは次のようになります。
c1 c2 c3 c4 c5
1 a b c y z
2 a b y z
3 a y z
4 a b c y z
したがって、各行には、y と z の値で終わる a、b、c のさまざまな長さのシーケンスがあります。私がする必要があるのは、値 y と z をそれぞれ、作業できる別の列に移動することです。そのため、データは次のようになります。
c6 c7 c8 c9 c10
1 a b c y z
2 a b y z
3 a y z
4 a b c y z
行ごとの各シーケンスの長さを特定し、それを列として追加したので、y と z がどの列にあるかがわかります。
x$not.na <- apply(paths, 1, function(x) length(which(!x=="")))
しかし、z と y の必要なカット アンド ペーストを実行するために、各行をループ (?) する方法に行き詰まっています。