r - 嵌套的 For 循环函数目标未完成
问题描述
我有一个关于嵌套循环的问题。我需要为每个样本做第 1 行 - 第 2 行、第 1 行 - 第 3 行等。然后循环到第 2 行 - 第 3 行等,没有重复(第 4 行 - 第 4 行)或组合重复(第 4 行 - 第 3 行)。接下来,我需要将所有输出放入 excel 文档中。
目前使用下面的代码,我只能实现第 1 行 - 行(n)的循环。
set.seed(1)
df <- matrix(sample.int(10, size = 10*5, replace = TRUE), nrow = 10, ncol = 4)
print(df)
df <- as.data.frame(df) # tabulate as dataframe
my_list <- list()
for(i in 1:nrow(df)){
for( j in 1:nrow(df)){
if (i != j) {
if(i < j){
my_list[[i]] <- df[i,] - df[j,]
}
}
}
}
df1 <- rbindlist(my_list, fill=TRUE)
我假设有:
if (i != j) {
if(i < j){
就足够了,但它没有给我我想要的东西。
请帮忙!
解决方案
您可以使用combn
来获取所有可能的组合并减去它们。
do.call(rbind, combn(seq(nrow(df)), 2, function(x) {
df[x[1], ] - df[x[2], ]
}, simplify = FALSE)) -> result
write.csv(result, 'result.csv', row.names = FALSE)
推荐阅读
- powerbi - PowerBi 折线图与总计
- android-studio - 无法解析符号“?attr/disabledAlpha”
- python - 在 WSL2 Ubuntu 中使用 Python 的 Kafka 消费者/生产者
- python - Pandas - 连接被截断的行
- node.js - 当首先设置 JSON 响应时,Passportjs 会话失败
- csv - SnowSQL 性能极慢
- java - 类型 org.pitest.maven.PitMojo 不存在
- html - CSS HR在div切割?
- vb.net - BC30420 在“quicktest4”中未找到“Sub Main”。在发现此错误可能是由安装失败引起后,我修复了 Visual Studio
- python - 将 Web Scraped JSON 数据转换为 Pandas Dataframe / 然后转换为 CSV 文件