gpt4 book ai didi

r - 遍历列表中的每个元素并为每个项目添加数字。使用 R

转载 作者:行者123 更新时间:2023-12-05 02:24:21 25 4
gpt4 key购买 nike

我读入一个文件,R 返回一个列表,如下所示:
list 1:“1)”“SEO”“agad”“na”“ciad”“faclan”“a”
列表 2:“cannteil”“(canntail)”“a-staigh”“dhan”“
list 3:“2)”“Seo”“sinn”“sin”“direach”“fuirich……”

我想要的是得到一个向量,如果 [[i]] 中的第一个元素有一个数字,那么 [[i]] 中的其他元素也得到相同的数字,如果 [[ i]] 没有数字,那么 [[i]] 中的所有元素都将具有上一行显示的数字,如下所示:

"1\t1)""1\tSeo ""1\tagad ""1\tna ""1\tciad ""1\tfaclan ""1\ta "...."2\t2)""2\tseo", 2\tsinn....

谁能告诉我这个的代码?还有,有没有办法得到一个只包含每个单词对应的数字的向量,而不是将它粘贴在每个单词之前?

谢谢

我的代码如下,但它没有给我想要的东西(所有元素的编号都是 1,即使列表中以编号 2 开头的元素也是如此。)代码的哪一部分是错误的?

word="" 
temp=""
for (i in 1:length(file)) {
if (grepl('\\d+\)',file[[i]][1])) {
snum=grep('\\d+',file[[i]][1])
temp=paste(snum, file[[i]], sep="\t")
} else {
temp=paste(snum,utter.short[[i]],sep="\t")
} word=c(word,temp)
}

最佳答案

假设您有一个列表列表,例如...

 list1 = list("1)" "Seo " "agad " "na " "ciad " "faclan " "a ")
list2 = list("cannteil " "(canntail) " "a-staigh " "dhan ")
list3 = list("2)" "Seo " "sinn, " "sin " "direach " "fuirich…")

biglist = list(list1, list2, list3)

这里有一个不优雅/不高效的解决方案来处理这个设置

 counter = 1
for (i in 1:length(biglist){
if (gsub("\\D", "", biglist[[i]][[1]])>0){
counter = gsub("\\D", "", biglist[[i]][[1]]
biglist[[i]] = biglist[[i]][2:length(biglist[[i]])]
}
lapply(counter, paste, biglist[[i]], sep="\t")
}

这可以处理任意数量的行和行的长度,只要第一项有 1 个数字,并且这些行是一个接一个地排列的。

根据其用途,您可能有更好的方式来读取和存储数据。

关于r - 遍历列表中的每个元素并为每个项目添加数字。使用 R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12767209/

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