首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从strsplit生成的列表中提取和粘贴多个元素

从strsplit生成的列表中提取和粘贴多个元素
EN

Stack Overflow用户
提问于 2015-09-15 19:49:24
回答 1查看 1.7K关注 0票数 1

我正在尝试提取并粘贴使用strsplit生成的列表中的元素。例如:

代码语言:javascript
复制
cat<-c("X0831_d8_f1_2s_wt_8_ROI_009", "X0831_d8_f1_2s_wt_8_ROI_008", 
"X0831_d8_f1_2s_wt_8_ROI_007", "X0831_d8_f1_2s_wt_8_ROI_006", 
"X0831_d8_f1_2s_wt_8_ROI_005", "X0831_d8_f1_2s_wt_8_ROI_004", 
"X0831_d8_f1_2s_wt_8_ROI_003", "X0831_d8_f1_2s_wt_8_ROI_002", 
"X0831_d8_f1_2s_wt_8_ROI_001", "X0831_d8_f1_10s_wt_8_ROI_019", 
"X0831_d8_f1_10s_wt_8_ROI_018")

我可以使用ldply生成所需的字符向量:

代码语言:javascript
复制
mouse<-ldply(strsplit(cat, "_"))
paste(mouse$V4,mouse$V8,sep="_")

而是在寻找一种更优雅的方法。也许使用sapply或类似的东西?

我可以生成一个包含一个元素的字符向量:

sapply(strsplit(cat, "_"), "[[",4 )

但无法找到提取这两个元素(并将它们粘贴在一起)的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-15 20:27:35

您在plyr中的示例已经相当不错了,但是下面是如何在sapply中使用匿名函数来实现这个示例

代码语言:javascript
复制
sapply(strsplit(cat, "_"), function(x){paste(x[[4]], x[[8]], sep="_")})

apply家族和其他几个函数可以使用匿名函数,在调用中定义它们。在本例中,我们有一个函数,它接受列表中的每个成员(作为x),然后将x[[4]]x[[8]]粘贴到一起。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32594432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档