gpt4 book ai didi

R 取消列出时获取列表名称

转载 作者:行者123 更新时间:2023-12-02 09:11:43 28 4
gpt4 key购买 nike

我有一个很大的字符向量列表,看起来像这样:

List of 53095
$ 30875 : chr [1:10] "<h2 class=\"buildings-page-title buildings- ...
$ 30876 : chr [1:10] "<h2 class=\"buildings-page-title buildings- ...

我想将列表创建到 data.table 中,其中一列显示所有原始数据(unlisting),然后添加另一列包含原始数据列表名称(但只是列表的第一个元素,而不是第二个元素)。

例如:

test<-list("30875"=c("hello", "world", "!"), 
"30876"=c("Nice","to","meet","you"))

# I could try something like this.

result<-data.table(A=unlist(test), B=names(unlist(test, use.names=T)))
> print(result)
A B
1: hello 308751
2: world 308752
3: ! 308753
4: Nice 308761
5: to 308762
6: meet 308763
7: you 308764

我想要与上面类似的内容,但 B 列中没有最后一位数字,这是列表中的特定元素。(因此,从 [[i]][j] 中,我只想要 [[i]] 部分。)在创建像我一样的东西之后,不必弄乱 B 列中的字符串,有没有办法从一开始就获得所需的结果?

期望的结果

   A      B
1: hello 30875
2: world 30875
3: ! 30875
4: Nice 30876
5: to 30876
6: meet 30876
7: you 30876

最佳答案

我们可以将 replengths 一起使用,根据列表中元素的数量重复列表的名称。

rep(names(test), lengths(test))
#[1] "30875" "30875" "30875" "30876" "30876" "30876" "30876"

将其放入data.table

library(data.table)
data.table(A=unlist(test), B=rep(names(test), lengths(test)))

# A B
#1: hello 30875
#2: world 30875
#3: ! 30875
#4: Nice 30876
#5: to 30876
#6: meet 30876
#7: you 30876

关于R 取消列出时获取列表名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51335425/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com