【问题标题】:How to associate the factor and lists?如何关联因子和列表?
【发布时间】:2019-01-31 18:04:51
【问题描述】:

我有很多命名列表。现在我想根据每个元素中字母“a”的数量将它们分开。瞬间,

library(stringr)

data1 <- c("apple","appreciate","available","account","adapt")
data2 <- c("tab","banana","cable","tatabox","aaaaaaa","aaaaaaaaaaa")
list1 <- list(data1,data2)
names(list1) <- c("a","b")

ca <- lapply(list1, function(x) str_count(x, "a")) #counting letter a
factor1 <- lapply(ca,as.factor) #convert ca to factor

#is that possible to associate factor1 to list1, then I can separate 
#elements depends on the factor1?

#ideal results
result$1 or result[1]
$`1`
$`a`$`1`
[1] "apple"   "account"

$`b`$`1`
[1] "tab"   "cable"

【问题讨论】:

  • results 会不会有 results$2 包含 data1 和 data2 的值以及 2 个“a”字符?

标签: r list sorting


【解决方案1】:

您可以使用splitMap 与一行非常接近:

Map(split, list1, Map(stringr::str_count, list1, "a"))

$a
$a$`1`
[1] "apple"   "account"

$a$`2`
[1] "appreciate" "adapt"

$a$`3`
[1] "available"


$b
$b$`1`
[1] "tab"   "cable"

$b$`2`
[1] "tatabox"

$b$`3`
[1] "banana"

$b$`7`
[1] "aaaaaaa"

$b$`11`
[1] "aaaaaaaaaaa"

这会首先列出所有的“a”元素,然后是所有按“a”字符数分组的“b”元素。

【讨论】:

    猜你喜欢
    • 2011-03-11
    • 1970-01-01
    • 2020-02-02
    • 1970-01-01
    • 1970-01-01
    • 2014-10-31
    • 1970-01-01
    • 2019-02-18
    • 2018-05-02
    相关资源
    最近更新 更多