当前代码如下所示。我正在尝试为数据帧的每一行在新列(viewWillDisappear
中)返回列表中最常见的元素(df
中的第12列)。 df$newCol
中类型为df
的列12的标题为list
,其值类似于:df$status_combined
c("high", " medium", " medium")
答案 0 :(得分:0)
根据您的描述,我假设df$status_combined
是像下面创建的“ L”之类的list
:
set.seed(1)
L <- replicate(5, sample(c("high", "medium", "low"), 10, TRUE), FALSE)
就您的方法而言,您相距不远。我建议一个简单的函数,如下所示:
f <- function(x) names(sort(table(x), decreasing = TRUE))[1]
您只需执行以下操作即可获得结果:
sapply(L, f)
# [1] "medium" "low" "high" "low" "low"
如果您希望将所有值制成表格,则可以尝试以下操作:
table(rev(stack(setNames(L, seq_along(L)))))
# values
# ind high low medium
# 1 3 3 4
# 2 2 5 3
# 3 4 2 4
# 4 2 4 4 ## <~~ You'll have to think about ties
# 5 1 5 4