如果没有最常见的字符串,我如何 return NA 并将最常见的字符串(如果存在)存储在单独的列中?
How do I return NA if there is no most common string, and store the most common string (if exists) in a separate column?
这是我的数据示例:
v1 <- c("Friday", "Wednesday")
v2 <- c("Sunday", "Monday", "Sunday", "Friday")
mylist <- list(v1, v2)
对于 [[1]],它应该 return 类似于 NA。
对于 [[2]],它应该 return 星期天
我试过使用 R 的 tm 包:
termFreq(mylist[[2]])
其中 return 的频率 table。我想提取频率最高的元素并将其保存在另一列中。在没有最大值的情况下(比如在[[1]],我想return NA。
如有任何帮助,我们将不胜感激!
我们创建一个 Mode
函数,然后将其应用于 list
个元素
Mode <- function(x) {
ux <- unique(x)
count = tabulate(match(x, ux))
if(length(unique(count)) == 1) {
NA
} else ux[which.max(count)]
}
lapply(mylist, Mode)
#[[1]]
#[1] NA
#[[2]]
#[1] "Sunday"
这是我的数据示例:
v1 <- c("Friday", "Wednesday")
v2 <- c("Sunday", "Monday", "Sunday", "Friday")
mylist <- list(v1, v2)
对于 [[1]],它应该 return 类似于 NA。 对于 [[2]],它应该 return 星期天
我试过使用 R 的 tm 包:
termFreq(mylist[[2]])
其中 return 的频率 table。我想提取频率最高的元素并将其保存在另一列中。在没有最大值的情况下(比如在[[1]],我想return NA。
如有任何帮助,我们将不胜感激!
我们创建一个 Mode
函数,然后将其应用于 list
个元素
Mode <- function(x) {
ux <- unique(x)
count = tabulate(match(x, ux))
if(length(unique(count)) == 1) {
NA
} else ux[which.max(count)]
}
lapply(mylist, Mode)
#[[1]]
#[1] NA
#[[2]]
#[1] "Sunday"