我正在尝试提取并粘贴使用strsplit生成的列表中的元素。例如:
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生成所需的字符向量:
mouse<-ldply(strsplit(cat, "_"))
paste(mouse$V4,mouse$V8,sep="_")而是在寻找一种更优雅的方法。也许使用sapply或类似的东西?
我可以生成一个包含一个元素的字符向量:
sapply(strsplit(cat, "_"), "[[",4 )
但无法找到提取这两个元素(并将它们粘贴在一起)的方法。
发布于 2015-09-15 20:27:35
您在plyr中的示例已经相当不错了,但是下面是如何在sapply中使用匿名函数来实现这个示例
sapply(strsplit(cat, "_"), function(x){paste(x[[4]], x[[8]], sep="_")})apply家族和其他几个函数可以使用匿名函数,在调用中定义它们。在本例中,我们有一个函数,它接受列表中的每个成员(作为x),然后将x[[4]]和x[[8]]粘贴到一起。
https://stackoverflow.com/questions/32594432
复制相似问题