に列にわたって値を指定します。カウント私はこのようになりますテーブルを持っているR
v1 v2 v3
pos neg pos
pos pos pos
neg neg neg
私は他の3つの列
v1 v2 v3 v4
pos neg pos pos
pos pos pos pos
neg neg neg neg
に列にわたって値を指定します。カウント私はこのようになりますテーブルを持っているR
v1 v2 v3
pos neg pos
pos pos pos
neg neg neg
私は他の3つの列
v1 v2 v3 v4
pos neg pos pos
pos pos pos pos
neg neg neg neg
別の可能性:
mydf$v4 <- apply(mydf, 1, function(x) names(which.max(table(x))))
います:
> mydf
v1 v2 v3 v4
1 pos neg pos pos
2 pos pos pos pos
3 neg neg neg neg
として「間の勝者を持っている別の列を作成したいです勝者」過半数を意味し、次のように動作します:
はdf$v4 <- ifelse(rowMeans(df == "neg") > 0.5, "neg", "pos")
df$v4
[1] "pos" "pos" "neg"
これはにrowMeans
を使用しています「負」である各行の要素の割合を計算します。この結果は、ifelse
に供給されます。ここで、割合が0.5より大きい場合、「neg」が戻されます。そうでない場合は、「pos」が戻されます。
列は文字でなければならないことに注意してください。だからこそ私は以下のas.is = TRUE
引数を使用します。
データ
df <- read.table(header = TRUE, text = "v1 v2 v3
pos neg pos
pos pos pos
neg neg neg", as.is = TRUE)
これは一般的な解決策ではありませんが、あなたは仮定しています。 2:各行には2つの値しかありません。 –
一般性について何かを暗示することを意味するものではありません。 – lmo
はこの文字ベクトル、または実際の数字はありますか? – lmo
文字ベクトル –
「勝者」とは何を意味しますか?大多数? – lmo