将一些df绑定在一起有一个小问题。
我使用以下过程来创建简化的dfs:
PWI_1 <- read.xlsx("/Users/myname/Desktop/PrelimPWI/PWI_1_V1A.xlsx", colNames = TRUE, startRow = 2)
Slim_1 <- data.frame(PWI_1$ExperimentName,PWI_1$Subject, PWI_1$error,PWI_1$Block, PWI_1$Category, PWI_1$Trial,PWI_1$prompt1.RT)
...以下文件的等。
然后我使用此代码尝试绑定dfs:
merged <- bind_rows(list(Slim_1,Slim_10,Slim_11...))
但是,df连接在右侧,而不是以一个长格式df附加在最后。*请注意,PWI_V1x是实验版本的名称,需要排队]
我认为错误是由变量修整过程(即创建'slim'df)引起的,但是不幸的是,未修剪的文件具有不同的列数,因此在尝试绑定原始df时出现错误。任何建议,将不胜感激!
bind_rows
要求列名称必须相同。而不是“限制”数据框,请使用dplyr::select
,以便每次都选择相同的列名。
Slim_PWI_1 <- read.xlsx("/Users/myname/Desktop/PrelimPWI/PWI_1_V1A.xlsx", colNames = TRUE, startRow = 2) %>%
select(ExperimentName, Subject, error, Block, Category, Trial, prompt1.RT)
然后这应该工作:
merged <- bind_rows(Slim_PWI_1, ...)
编辑:如果您有多个文件,则可以像这样将它们一起阅读和精简在一起:
Slim_PWI_list <- dir(path = "/Users/myname/Desktop/PrelimPWI/", pattern = "PWI.*xlsx", full.names = TRUE) %>%
map(~read.xlsx(., colNames = TRUE, startRow = 2)) %>%
map(~select(., ExperimentName, Subject, error, Block, Category, Trial, prompt1.RT))
merged <- bind_rows(Slim_PWI_list)