Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我在R需要什么样的加入?_R_Dataframe - Fatal编程技术网

我在R需要什么样的加入?

我在R需要什么样的加入?,r,dataframe,R,Dataframe,请先帮我把这个问题弄清楚。 关键是我不知道我在这里需要的正确的R术语。“join”是正确的词吗 set.seed(0) df <- data.frame(a = sample(c(T,F), 10, replace=TRUE), b = sample(c(T,F), 10, replace=TRUE), c = sample(c(T,F), 10, replace=TRUE), d = s

请先帮我把这个问题弄清楚。 关键是我不知道我在这里需要的正确的R术语。“join”是正确的词吗

set.seed(0)
df <- data.frame(a = sample(c(T,F), 10, replace=TRUE),
                 b = sample(c(T,F), 10, replace=TRUE),
                 c = sample(c(T,F), 10, replace=TRUE),
                 d = sample(c(T,F), 10, replace=TRUE))

a <- addmargins(table(df$a))
b <- addmargins(table(df$b))
c <- addmargins(table(df$c))
d <- addmargins(table(df$d))
我想让数据看起来像这样

   FALSE  TRUE   Sum 
a      7     3    10 
b      4     6    10 
c      4     6    10 
d      5     5    10 

听起来很简单,不是吗?过去我使用的是
ddply
。但我不知道如何使用
ddply
或其他任何东西。

这只是堆叠行,您需要
rbind
(用于将行“绑定”在一起。
cbind
相当于列)


当您有一些共享列但有一些不同的列,并且希望合并数据以使共享列对齐,并保留不同的对应列时,通常会执行联接。例如,如果您有一个由人员和地址组成的数据框,另一个由人员和订单组成的数据框,那么您可以将它们连接在一起,以查看哪个地址符合哪个顺序。在base R中,连接是通过
merge
命令完成的

下面是一个简单的单行程序,用于执行table命令,然后添加边距:

addmargins(t(sapply(df, table)))

#or this for just the row sums:
addmargins(t(sapply(df, table)), 2)
sapply
函数应用于每一列。
t
转换结果

addmargins
用于行/列总和

类似这样的内容:
addmargins(t(sappy(df,table))
rbind(a, b, c, d)
#   FALSE TRUE Sum
# a     7    3  10
# b     4    6  10
# c     4    6  10
# d     5    5  10
addmargins(t(sapply(df, table)))

#or this for just the row sums:
addmargins(t(sapply(df, table)), 2)