【问题标题】:Selecting rows and columns within .csv file automatically using r使用 r 自动选择 .csv 文件中的行和列
【发布时间】:2019-07-24 10:53:15
【问题描述】:

所以我为我的论文创建了一个数据库,我想比较不同情况下的物质以获得 P 值。为了做到这一点,我在 R 中创建了一个不是自动的脚本。我对如何使用for 循环创建一个为我执行此操作的脚本非常感兴趣。我想为每一行但每三列选择组。

如果可能,请告诉我。提前致谢!

现在我正在这样做。首先选择第 1 行的前三个值,然后在第一行选择接下来的三个值,以便在下一步中进行比较。

row1_1 <- my_data[1, 2:4]
row1_2 <- my_data[1, 6:8]

【问题讨论】:

  • in order to compare them 是什么意思?
  • 我想将 1A、1B、1C 与 2A、2B、2C 进行比较。为了做到这一点,我使用具有两个输入 t.test((values 1A, 1B, 1C), (2A, 2B, 2C)) 的函数。然而,为每一行执行此操作需要大量重复代码,我想使用 for 循环来自动化这些代码。所以:对于 i in row,选择 1A、1B、1C,选择 2A、2B、2C。这对你们来说清楚吗?

标签: r dataframe compare p-value


【解决方案1】:

根据问题,以下将使用 for 循环遍历每一行

for (i in 1:nrow(my_data))
{

case1<- my_data[i, 2:4]
case2<- my_data[i, 6:8]
compare_cases <- t.test(case1, case2, alternative = "two.sided", var.equal = FALSE) 
print(case1)
print(case2)
print(compare_cases)
}

基于 cmets 的带有错误处理的修改变体

pvalues <- c()
for (i in 1:nrow(my_data))
{

  case1<- my_data[i, 2:4]
  case2<- my_data[i, 6:8]
  pval <- NA
  test <- tryCatch({ t.test(case1, case2, alternative = "two.sided", var.equal = FALSE) }, 
                     warning = function(war) { NA },
                     error = function(err) { NA },
                     finally = { })
  print(paste0("Test for row i=",i))
  print(test)
  if (identical(test,NA)) pval <- NA
  else pval <- test$p.value

  pvalues <- c(pvalues,pval)
}

print("All my pvalues for all rows are:")
print(pvalues)

【讨论】:

  • 我认为这在读取数据后有效。 OP 似乎想在read.csv 或任何阅读功能中做到这一点。
  • 对于我想将这些选定值相互比较的每一行。我想使用函数 t.test(first3values, second3values) 并为每一行重复这个 t.test
  • 我上面提供的解决方案似乎可以解决您的问题(您需要插入您的 t.test() 调用,其中推荐说#do compare stuff)。
  • for (i in 1:nrow(my_data)) { case1 &lt;- my_data[i, 2:4] case2 &lt;- my_data[i, 6:8] compare_cases &lt;- t.test(case1, case2, alternative = "two.sided", var.equal = FALSE) print(case1) print(case2) print(compare_cases) }
  • 目前我有这段代码,但它仍然无法工作......抱歉给您带来不便
猜你喜欢
  • 1970-01-01
  • 2020-04-07
  • 1970-01-01
  • 2019-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
相关资源
最近更新 更多