2017-10-14 74 views
-1

这是我的第一个数据帧,运行调用另一个数据框的列数据,列由

df1 <- as.data.frame(matrix(rbinom(9*9, 1, 0.5), ncol=9, nrow =9)) 
colnames(df1) <- paste(rep(c("a","b","c"), each=3), rep(c(1,2,3), 3), sep = "") 
set.seed(11) 

这是我的第二个数据帧,

factor.1 <- paste(rep(c("a","b"), each=3), rep(c(1,2,3), 2), sep = "") 
factor.2 <- rep(paste(rep("c", 3), c(1,2,3), sep = ""), 2) 
df2 <- as.data.frame(cbind(factor.1,factor.2)) 

我想计算结果中的每一列和把它放在第二个数据框里面。我用dplyr

fun1 <- function(x){sum(ds1[, x])} 
df2%>% mutate(value = fun1(factor.1)) 

但我得到的是这样,

factor.1 factor.2 value 
1  a1  c1  22 
2  a2  c2  22 
3  a3  c3  22 
4  b1  c1  22 
5  b2  c2  22 
6  b3  c3  22 

但我想是这样的,

factor.1 factor.2 value 
    1  a1  c1  4 
    2  a2  c2  4 
    3  a3  c3  4 
    4  b1  c1  1 
    5  b2  c2  4 
    6  b3  c3  5 
+0

不清楚。 '价值'是基于每对相应列的总和吗? (df2 $ factor.1),as.character(df2 $ factor.2) ))' – akrun

+0

另外,其中'temp_p.value.data'已定义或可能是'unlist(Map(函数(x,y)sum(colSums(df1 [c(x,y)])),as.character df2 $ factor.1),as.character(df2 $ factor.2)))' – akrun

+0

'df2 < - as.data.frame(cbind(temp_factor.1,temp_factor.2))',其中'temp_factor.1 ',你的意思是'factor.1'吗? – deepseefan

回答

1

这是你在找什么?

df2 %>% mutate(value = sapply(factor.1, fun1)) 
相关问题