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_Dplyr - Fatal编程技术网

添加包含R中重复字符串数总和的行

添加包含R中重复字符串数总和的行,r,dplyr,R,Dplyr,我想知道每列上有多少个零(“0”)。如何生成一行,该行包含每列上“0”和非零的数量之和 Name <- c("G1", "G2", "G3", "G4","G5", "G6") Obs1 <- c(0, 1, 4, 7, 0, 2) Obs2 <- c(6, 1, 0, 3, 0, 1) Obs3 <- c(0, 0, 0, 8, 0, 0) df &l

我想知道每列上有多少个零(“0”)。如何生成一行,该行包含每列上“0”和非零的数量之和

Name <- c("G1", "G2", "G3", "G4","G5", "G6")
Obs1 <- c(0, 1, 4, 7, 0, 2)
Obs2 <- c(6, 1, 0, 3, 0, 1)
Obs3 <- c(0, 0, 0, 8, 0, 0)
df <- data.frame(Name, Obs1, Obs2, Obs3)

您可以使用
colSums
计算每列中的零值和非零值

data <- data.frame(Name = c('Zero', 'Non-zero'), 
            rbind(colSums(df[-1] == 0), colSums(df[-1] != 0)))
rbind(data, df)  

#      Name Obs1 Obs2 Obs3
#1     Zero    2    2    5
#2 Non-zero    4    4    1
#3       G1    0    6    0
#4       G2    1    1    0
#5       G3    4    0    0
#6       G4    7    3    8
#7       G5    0    0    0
#8       G6    2    1    0

您可以使用
colSums
计算每列中的零值和非零值

data <- data.frame(Name = c('Zero', 'Non-zero'), 
            rbind(colSums(df[-1] == 0), colSums(df[-1] != 0)))
rbind(data, df)  

#      Name Obs1 Obs2 Obs3
#1     Zero    2    2    5
#2 Non-zero    4    4    1
#3       G1    0    6    0
#4       G2    1    1    0
#5       G3    4    0    0
#6       G4    7    3    8
#7       G5    0    0    0
#8       G6    2    1    0
使用基数R

df <- rbind(sapply(df, function(x) sum(x == 0)), sapply(df, function(x) sum(x != 0)),df)
df$Name[c(1,2)] <- c('Zero','Non-Zero')
df
      Name Obs1 Obs2 Obs3
1     Zero    2    2    5
2 Non-Zero    4    4    1
3       G1    0    6    0
4       G2    1    1    0
5       G3    4    0    0
6       G4    7    3    8
7       G5    0    0    0
8       G6    2    1    0
> 
df使用基本R

df <- rbind(sapply(df, function(x) sum(x == 0)), sapply(df, function(x) sum(x != 0)),df)
df$Name[c(1,2)] <- c('Zero','Non-Zero')
df
      Name Obs1 Obs2 Obs3
1     Zero    2    2    5
2 Non-Zero    4    4    1
3       G1    0    6    0
4       G2    1    1    0
5       G3    4    0    0
6       G4    7    3    8
7       G5    0    0    0
8       G6    2    1    0
> 
df