你能帮帮我吗?
我把list of matrices读入R。每个矩阵被随机化10次,然后为每个随机化计算一个度量。我希望将结果存储在一个反映随机化顺序的有组织的数据框架中。
如何用文件名+数字的顺序构建一个vector,从而知道哪个结果指的是哪个随机化?稍后,我将把这个向量添加到一个data frame中来标记结果。
到目前为止,我的代码是这样的:
假设我有一个向量,其中包含读取到R中的文件的名称,它看起来如下所示:
files <- paste("file", seq(1:3), sep = "")每个文件被随机化10次,然后为每个随机化计算一个度量:
rand <- seq(1:10)现在,我想创建一个包含文件名和随机化序列的向量:
files.rand <- paste(files, rand, sep = "_")由此代码生成的最终序列并不反映分析随机化的实际序列。
我需要序列看起来像这样:
"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的名称中,等等。
如何才能取得这一成果?谢谢!
发布于 2020-10-27 13:53:38
如果您希望每个文件的末尾按照已经对文件和序列进行排序的顺序粘贴每个序列,那么我认为您只想在paste函数上使用paste,并按如下方式对其进行unlist:
files.rand <- lapply(files,function(x) paste(x,rand,sep = "_"))
files.rand <- unlist(files.rand)发布于 2020-10-27 14:40:16
您可以使用outer:
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"发布于 2020-10-27 13:38:59
您可以简单地对files.rand进行排序,但是这会在字母数字顺序上出错,这与数字顺序不一样。一个简单的解决方法是向数字中添加前导零(将100个随机数替换为"%03i“等):
files.rand <- paste(files, sprintf("%02i", rand), sep = "_")
files.rand <- sort(files.rand)https://stackoverflow.com/questions/64555275
复制相似问题