我有一个 7 行表,其中有 4 列(总体)分类类型,其中每个列有 4 个值:强烈不同意、不同意、同意和强烈同意。看起来像这样:
我每行有 7 个频率表。该频率表对应于第一个变量(freq_table)。这是频率表。
我有这个 for 循环尝试根据列名称复制并粘贴数字,但我无法做到。你能帮我吗?
freq_table <- data.frame(table(data_process$OverarchingImproveRelationships))
for (string_name in names(freq_table)) {
if (freq_table[string_name] = 'string_name') {
overarching[, string_name] <- freq_table[string_name]
}
}
使用
data.table
的解决方案,无需空的“总体”表。我们只是定义您的频率表并将它们添加到列表中。然后我们transpose
这些桌子并将它们绑定在一起。
# example with 3 frequency tables, representing each row
row1 <- data.frame(Var1 = LETTERS[1:4], Freq = 1:4)
row2 <- data.frame(Var1 = LETTERS[1:4], Freq = 2:5)
row3 <- data.frame(Var1 = LETTERS[1:4], Freq = 3:6)
# add your frequency tables in a list and define the corresponding "rownames"
dflist <- (list("row1name" = row1, "row2name" = row2, "row3name" = row3))
library(data.table)
results <- rbindlist(lapply(dflist, transpose, make.names = "Var1"))
# as data.table does not support row.names
# we convert it back to a data.frame and provide the row.names
results <- as.data.frame(results)
row.names(results) <- names(dflist)
results
# A B C D
# row1name 1 2 3 4
# row2name 2 3 4 5
# row3name 3 4 5 6