Цель состоит в том, чтобы каждый из фреймов данных располагался горизонтально друг относительно друга, но фреймы данных не любят воспроизводиться с фреймами данных различной длины. В настоящее время проблема заключается в том, что датафрейм № 2 имеет NA сверху и не будет работать в цикле.
library(dplyr)
library(tidyverse)
SurveyResponses <- read.csv(file="image_diff_stimuli_manual_coding.csv")
v=nrow(SurveyResponses)
m <- matrix(SurveyResponses)
# Convert to Matrix ^
countgroups = factor(SurveyResponses$Image_ID)
groupmat = matrix(table(countgroups))
# Count number of responses per group ^
h = as.numeric(nrow(groupmat))
currentrow = 1
# Start at Row 1 ^
cols= matrix(nrow = 1,ncol = h)
cols[1,1] = tolower(SurveyResponses$Image_Name[currentrow])
cols[1,2] = "Freq"
answermatrix = matrix(nrow = groupmat[1],ncol = h*2)
for (i in 1:h){
if (i < 2){
groupanswers = factor(tolower(SurveyResponses$Answer[currentrow:groupmat[i]]))
groupans <- data.frame(table(groupanswers))
answermatrix[1:as.numeric(nrow(groupans)),1] = (as.character(groupans[,1]))
answermatrix[1:as.numeric(nrow(groupans)),2] = (as.numeric(groupans[,2]))
currentrow = currentrow + groupmat[i]
}
if (i > 1){
k = as.numeric(2[i]+1)
l = as.numeric(k+1)
answermatrix[1:as.numeric(nrow(groupans)),c(k)] = (as.character(groupans[,1]))
answermatrix[1:as.numeric(nrow(groupans)),c(l)] = (as.numeric(groupans[,2]))
cols[1,c(k)] = "Freq"
cols[1,c(l)] = tolower(SurveyResponses$Image_Name[currentrow])
groupanswers = factor(tolower(SurveyResponses$Answer[currentrow:(currentrow+groupmat[i])]))
groupans <- data.frame(table(groupanswers))
currentrow = currentrow + groupmat[i]
}
}