首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在R中创建具有顺序文件名和数字的向量?

如何在R中创建具有顺序文件名和数字的向量?
EN

Stack Overflow用户
提问于 2020-10-27 13:15:46
回答 3查看 308关注 0票数 1

你能帮帮我吗?

我把list of matrices读入R。每个矩阵被随机化10次,然后为每个随机化计算一个度量。我希望将结果存储在一个反映随机化顺序的有组织的数据框架中。

如何用文件名+数字的顺序构建一个vector,从而知道哪个结果指的是哪个随机化?稍后,我将把这个向量添加到一个data frame中来标记结果。

到目前为止,我的代码是这样的:

假设我有一个向量,其中包含读取到R中的文件的名称,它看起来如下所示:

代码语言:javascript
复制
files <- paste("file", seq(1:3), sep = "")

每个文件被随机化10次,然后为每个随机化计算一个度量:

代码语言:javascript
复制
rand <- seq(1:10)

现在,我想创建一个包含文件名和随机化序列的向量:

代码语言:javascript
复制
files.rand <- paste(files, rand, sep = "_")

由此代码生成的最终序列并不反映分析随机化的实际序列。

我需要序列看起来像这样:

代码语言:javascript
复制
"file1_1"  "file1_2"  "file1_3"  "file1_4"  "file1_5"
"file1_6"  "file1_7"  "file1_8"  "file1_9"  "file1_10"
"file2_1" "file2_2" "file2_3" "file2_4" ...

顺序编号应该添加到file1的名称中,然后按顺序添加到file2的名称中,等等。

如何才能取得这一成果?谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-10-27 13:53:38

如果您希望每个文件的末尾按照已经对文件和序列进行排序的顺序粘贴每个序列,那么我认为您只想在paste函数上使用paste,并按如下方式对其进行unlist

代码语言:javascript
复制
files.rand <- lapply(files,function(x) paste(x,rand,sep = "_"))
files.rand <- unlist(files.rand)
票数 1
EN

Stack Overflow用户

发布于 2020-10-27 14:40:16

您可以使用outer

代码语言:javascript
复制
c(t(outer(files, rand, paste, sep = '_')))

#[1] "file1_1"  "file1_2"  "file1_3"  "file1_4"  "file1_5"  "file1_6" 
#[7] "file1_7"  "file1_8"  "file1_9"  "file1_10" "file2_1"  "file2_2" 
#[13] "file2_3"  "file2_4"  "file2_5"  "file2_6"  "file2_7"  "file2_8" 
#[19] "file2_9"  "file2_10" "file3_1"  "file3_2"  "file3_3"  "file3_4" 
#[25] "file3_5"  "file3_6"  "file3_7"  "file3_8"  "file3_9"  "file3_10"
票数 1
EN

Stack Overflow用户

发布于 2020-10-27 13:38:59

您可以简单地对files.rand进行排序,但是这会在字母数字顺序上出错,这与数字顺序不一样。一个简单的解决方法是向数字中添加前导零(将100个随机数替换为"%03i“等):

代码语言:javascript
复制
files.rand <- paste(files, sprintf("%02i", rand), sep = "_")
files.rand <- sort(files.rand)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64555275

复制
相关文章

相似问题

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