gpt4 book ai didi

r - 从R中数据框中的列表中的值创建新的列表/数据框

转载 作者:行者123 更新时间:2023-12-05 01:05:15 25 4
gpt4 key购买 nike

我有一个大数据框 df 通过在不同的数据框上运行单边 t 检验获得:

df <- structure(list(uniqueID = c("101030", "101060"), res = list(structure(list(
statistic = c(t = 19), parameter = c(df = 20),
p.value = 0.00015, conf.int = structure(c(0.389,
Inf), conf.level = 0.95), estimate = c(`mean of x` = 0.412),
null.value = c(mean = 0.22), stderr = 0.01,
alternative = "greater", method = "One Sample t-test", data.name = "mean"), class = "htest"),
structure(list(statistic = c(t = 29), parameter = c(df = 20),
p.value = 4.5e-05, conf.int = structure(c(0.569,
Inf), conf.level = 0.95), estimate = c(`mean of x` = 0.600),
null.value = c(mean = 0.22), stderr = 0.01,
alternative = "greater", method = "One Sample t-test",
data.name = "mean"), class = "htest"))), row.names = c(NA,
-2L), class = c("tbl_df", "tbl", "data.frame"))

我想创建一个新的数据框 df_new 我基本上采用 uniqueID 值以及 p.value:

df_new <- data.frame(uniqueID = c(101030, '101060'), pval = c(0.00015, 4.5e-05))

我知道必须有一种方法可以遍历这个数据框。例如,我可以通过 df[[2]][[i]]$p.value 访问 p.value 其中 i 是行号,但我不知道如何遍历每一行并将此输出保存到列表或新数据框。任何帮助将不胜感激。

最佳答案

如果我理解您的要求,您有一个列表,最简单的方法是使用 apply 函数进行迭代:

df_new  <- data.frame(
uniqueID = df$uniqueID,
pval = sapply(df$res, function(x) x[["p.value"]])
)

输出:


r$> df_new
uniqueID pval
1 101030 1.5e-04
2 101060 4.5e-05

关于r - 从R中数据框中的列表中的值创建新的列表/数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70758866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com