对R中具有相同列名的矩阵行中的值求和
我需要将这两个矩阵对应于(玩具)字数:对R中具有相同列名的矩阵行中的值求和,r,merge,R,Merge,我需要将这两个矩阵对应于(玩具)字数: a hope to victory win [1,] 2 1 1 1 1 及 其中“a”字出现3次,而“win”字出现2次(每个矩阵中出现一次),则分为: 其中,同名列合并为一个包含和的列 以及 第一个矩阵保留,第二个矩阵附加在最后,但只有唯一的列名,且所有行值都等于零。因此,如果将此数据存储在数据框中(这确实是此类数据的建议),则过程非常简单 (我将包含该格式的转换,包含任意数量的行): 转换: newdf1 <
a hope to victory win
[1,] 2 1 1 1 1
及
其中“a”字出现3次,而“win”字出现2次(每个矩阵中出现一次),则分为:
其中,同名列合并为一个包含和的列
以及
第一个矩阵保留,第二个矩阵附加在最后,但只有唯一的列名,且所有行值都等于零。因此,如果将此数据存储在数据框中(这确实是此类数据的建议),则过程非常简单 (我将包含该格式的转换,包含任意数量的行): 转换:
newdf1 <- data.frame(Word = colnames(matrix1), Count = as.vector(t(matrix1)))
newdf2 <- data.frame(Word = colnames(matrix2), Count = as.vector(t(matrix2)))
newdf1是否需要在矩阵中?对于不同的数据结构,例如data.frame或data.table,这似乎是一个更好的任务。在这里,您试图使用列名来存储数据,而实际需要的是一个包含两列的data.frame,“word”和“count”,我收到一条错误消息:函数列表[[I]](值)中出错:在运行df%>%group(word)%%>%summary(count=sum(count))时找不到函数“group”
。我发布了整个代码,以防列表与数据帧之间出现问题,我现在看不到这些问题。呜呜,这应该是groupby
a win chance hope than to victory
[1,] 3 2 1 1 1 1 1
a hope to victory win different than
[1,] 2 1 1 1 1 0 0
newdf1 <- data.frame(Word = colnames(matrix1), Count = as.vector(t(matrix1)))
newdf2 <- data.frame(Word = colnames(matrix2), Count = as.vector(t(matrix2)))
library(dplyr)
df <- rbind(newdf1,newdf2)
result <- df %>% group_by(Word) %>% summarise(Count = sum(Count))
result2 <- rbind(newdf1,data.frame(Word = setdiff(newdf2$Word,newdf1$Word), Count = 0))