R 复制并粘贴频率表值

问题描述 投票:0回答:1

我有一个 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]
  }
}
r frequency
1个回答
0
投票

使用

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
© www.soinside.com 2019 - 2024. All rights reserved.