2017-10-14 1 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)) 

である私は、各列に結果を計算したいと2番目のデータフレームの中に入れます。私は

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

dplyr使用しかし、私が得ることは、

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

明確ではありません。対応する列の各ペアの合計に基づいて '値'ですか?つまり、.character(df2 $ factor.1)、as.character(df2 $ factor.2)のようにdo.call(rbind、map(function(x、y)colSums(df1 [c(x、y)]) )) ' – akrun

+0

また、 'temp_p.value.data'が定義されているか、unlist(map(function)(x、y)sum(colSums(df1 [c(x、y)]) df2 $ factor.1)、as.character(df2 $ factor.2))) ' – akrun

+0

' df2 < - as.data.frame(cbind(temp_factor.1、temp_factor.2)) 'は、' temp_factor.1 '、第1因子を意味しますか? – deepseefan

答えて

1

が、これはあなたが探しているものはありますか?

df2 %>% mutate(value = sapply(factor.1, fun1)) 
関連する問題