如何获取r中不同参数的行和列值?

时间:2014-02-19 15:08:22

标签: r

我遇到了一个问题。

我有数据集

v1   v2   v3  v4
VL   M    H   M
M    H    L   L
M    M    M   H
VH   H    H   VL

列名为v1 v2 v3,每个行值将随五个参数而变化。 M-medium,L-Low,VL-very low,VH-very high,H-HIGH。

我想要更高的列和行值。这意味着如果第一行中M计数更高,则第一行高值为M.如果行具有两个更高的值,则将两者作为更高的值。与列相同的方式。如果所有都有相同的计数,请选择All as higher。

输出:
排更高的值

A   B
1   M
2   L
3   M
4   H

cloumn更高的价值

A    B
V1   M
V2   M,H
V3   H
V4   M,L,H,VL

1 个答案:

答案 0 :(得分:2)

这看起来有效:

ff = function(x) {
   tab = table(x)
   paste0(names(tab)[which(tab == max(tab))], collapse = ", ")
}
apply(DF, 2, ff)  #for columns
#           v1            v2            v3            v4 
#          "M"        "H, M"           "H" "H, L, M, VL" 
apply(DF, 1, ff)  #for rows
#[1] "M" "L" "M" "H"

DF

DF = read.table(text = 'v1   v2   v3  v4
VL   M    H   M
M    H    L   L
M    M    M   H
VH   H    H   VL', header = T, stringsAsFactors = F)