小编lik*_*zza的帖子

名称与列表名称相同的字符向量

我有一个看起来像这样的列表.

my_list <- list(Y = c("p", "q"), K = c("s", "t", "u"))
Run Code Online (Sandbox Code Playgroud)

我想用它们所在列表的名称命名每个列表元素(字符向量).同一向量的所有元素必须具有相同的名称

我能够编写适用于单个列表元素的此函数

name_vector <- function(x){
      names(x[[1]]) <- rep(names(x[1]), length(x[[1]]))
      return(x)
    }

> name_vector(my_list[1])
$Y
  Y   Y 
"p" "q" 
Run Code Online (Sandbox Code Playgroud)

但无法找到一种矢量化的方法.如果我使用apply函数运行它,它只会返回列表不变

> lapply(my_list, name_vector)
$K
[1] "p" "q"

$J
[1] "x" "y"
Run Code Online (Sandbox Code Playgroud)

我想要的my_list输出是一个命名向量

 Y   Y   K   K   K  
"p" "q" "s" "t" "u"
Run Code Online (Sandbox Code Playgroud)

r vector named dataframe

6
推荐指数
1
解决办法
196
查看次数

在管道中的同一对象上调用两个不同的函数(%&gt;%)

我想知道是否有一种方法可以同时调用html_name()html_text(从rvest包中)并从同一管道(magrittr::%>%)中存储两个不同的结果

这是一个例子:

uniprot_ac <- "P31374"

GET(paste0("https://www.uniprot.org/uniprot/", uniprot_ac, ".xml")) %>%
    content(as = "raw", content = "text/xml") %>%
    read_html %>%
    html_nodes(xpath = '//recommendedname/* |
               //name[@type="primary"] | //comment[@type="function"]/text |
               //comment[@type="interaction"]/text')
Run Code Online (Sandbox Code Playgroud)

在这一点上,我想从 html_name()

[1] "fullname" "ecnumber" "name"     "text"    
Run Code Online (Sandbox Code Playgroud)

AND标签内容,而不必通过重写整个管道以将最后一行更改为来创建单独的对象 html_text()

[1] "Serine/threonine-protein kinase PSK1"                                                                                                                                                                                                                                                                             
[2] "2.7.11.1"                                                                                                                                                                                                                                                                                                         
[3] "PSK1"                                                                                                                                                                                                                                                                                                             
[4] "Serine/threonine-protein kinase involved ... ... 
Run Code Online (Sandbox Code Playgroud)

所需的输出可以是这样的,矢量或数据。帧都没有关系

  [1] fullname: "Serine/threonine-protein kinase PSK1"                                                                                                                                                                                                                                                                             
  [2] ecnumber: "2.7.11.1"                                                                                                                                                                                                                                                                                                         
  [3] Name: "PSK1"                                                                                                                                                                                                                                                                                                             
  [4] Text: "Serine/threonine-protein kinase involved ... ... 
Run Code Online (Sandbox Code Playgroud)

r magrittr

1
推荐指数
1
解决办法
128
查看次数

标签 统计

r ×2

dataframe ×1

magrittr ×1

named ×1

vector ×1