如何从 .t​​xt 文件计算条件均值 [关闭]

Posted

技术标签:

【中文标题】如何从 .t​​xt 文件计算条件均值 [关闭]【英文标题】:How to calculate conditional means from .txt files [closed] 【发布时间】:2022-01-19 03:03:09 【问题描述】:

我对编程还很陌生,正在寻找一些指导。任何帮助表示赞赏。

这就是我想要做的事情:我有大量来自认知实验的 .txt 文件(Flanker 任务,如果好奇的话),我需要根据条件计算平均值。这些文件没有标题,如下所示:

XXXXX 1 1 675 XXXXX 0 1 844 YYYYY 1 1 599 YYXYY 0 1 902

我想根据实验条件(0 或 1;c2)计算毫秒的平均值(最右边的列;c4)。我还需要输出中包含的每个 .txt 文件的文件名(我的参与者 ID)。

我最熟悉 R,但实际上只是用于数据分析。如果这些(或其他)更适合我的需要,我也对 Python 和 Matlab 有一点经验。同样,任何方向的一点都将不胜感激。

谢谢

【问题讨论】:

【参考方案1】:

Tidyverse collection of packages 尤其是dplyr 和readr 可以轻松地为您在语法上可能是 SQL 完成这项任务。

类似

#loading packages
library(tidyverse)

#importing data
df <- read_delim("file.txt", delim="|", col_names=c("col1", "col2", "col3", "col4"))

#dealing with data
#only mean for col2 == 1
df %>%
filter(col2 == 1) %>%
summarize(mean_exp = mean(col4))

#mean considering grouping by col2
df %>%
group_by(col2) %>%
summarize(mean_exp = mean(col4))

我可能会建议您在上面的链接中搜索可用的备忘单。它们非常容易理解和重现代码。

【讨论】:

非常感谢!这很有帮助。【参考方案2】:

在 R 中你可以这样做:

# mimick your text files

cat("XXXXX 1 1 675",file="XXXXX.txt",sep="\n")
cat("XXYXX 0 1 844",file="XXYXX.txt",sep="\n")
cat("YYYYY 1 1 599",file="YYYYY.txt",sep="\n")
cat("YYXYY 0 1 902",file="YYXYY.txt",sep="\n")


# create a list
my_list_txt <- list.files(pattern=".txt")

files_df <- lapply(my_list_txt, function(x) read.table(file = x, header = F))

# create a dataframe
df <- do.call("rbind", lapply(files_df, as.data.frame))

# do the group calculation
library(dplyr)
df %>% 
  group_by(V2) %>% 
  summarise(mean = mean(V4))

     V2  mean
  <int> <dbl>
1     0   873
2     1   637

【讨论】:

以上是关于如何从 .t​​xt 文件计算条件均值 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 .t​​xt 中提取文本并将其存储到动态二维数组中?

计算每个产品的加权平均值 [关闭]

线性回归——最小二乘法_实例

均值模型

如何运行 perl xt 测试?

如何在 django 中计算某些 if 条件的字段平均值?