Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.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,我试图对一个包含3个变量的表进行排序,通常称为3向表 我附上了可复制代码将生成的表结构的图片 尽管该表基本上分为三个部分/组,但是否可以按逻辑方式对其进行排序?例如,您可以根据值按“否”列或“是”列排序吗? 例如,当订购“否”时,英格兰将被订购为“Sertosa”(7)、弗吉尼亚(8)、花色(16)。威尔士将被订购花色(11),濑户田(12),弗吉尼亚。。。对于表的每个部分,依此类推 #使用内置在R中的Iris数据复制代码: Data <- iris Data $ var2 <-

我试图对一个包含3个变量的表进行排序,通常称为3向表

我附上了可复制代码将生成的表结构的图片

尽管该表基本上分为三个部分/组,但是否可以按逻辑方式对其进行排序?例如,您可以根据值按“否”列或“是”列排序吗? 例如,当订购“否”时,英格兰将被订购为“Sertosa”(7)、弗吉尼亚(8)、花色(16)。威尔士将被订购花色(11),濑户田(12),弗吉尼亚。。。对于表的每个部分,依此类推

#使用内置在R中的Iris数据复制代码:

Data <- iris
Data $ var2 <- Data $ Species
Data $ var2 <- sample(Data $ var2)
Data $ var3 <- Data $ Species
Data $ var3 <- sample(Data $ var3)
#making the example clearer
library(plyr)
Data $ var2 <- revalue(Data $ var2, c("setosa"="No", "versicolor"="No","virginica" ="Yes")) 
Data $ var3 <- revalue(Data $ var3, c("setosa"="England", "versicolor"="Wales","virginica" ="Scotland")) 
#3-way Table:
df <- table(Data $ Species, Data $ var2, Data $ var3)
df

Data您应该避免在R中使用
table()
array()
,因为它们很难使用。另外,我建议您专注于学习dplyr,而不是plyr,因为plyr不再被维护

直接使用原始数据框,而不是使用
table()

库(dplyr)
#> 
#>正在附加包:“dplyr”
#>以下对象已从“package:stats”屏蔽:
#> 
#>滤波器,滞后
#>以下对象已从“package:base”屏蔽:
#> 
#>相交、setdiff、setequal、并集
数据%
解组()%>%
安排(国家,是)
#>'summary()`已按'Country'对输出进行分组。可以使用“.groups”参数重写。
#>#tibble:9 x 4
#>国家物种是否
#>              
#>1英格兰弗吉尼亚州2 8
#>2英国彩色7 15
#>3英格兰塞托萨14 5
#>4苏格兰塞托萨5 14
#>5苏格兰弗吉尼亚6 12
#>6.颜色9 8
#>7威尔士塞托萨4 8
#>8种颜色5 6
#>9威尔士弗吉尼亚州14 8
#生成一个数据帧列表
数据%>%
按(国家、物种)划分的组别%>%
总结(是=总和(活着=“是”),否=总和(活着=“否”)%>%
解组()%>%
安排(国家,是)%>%
分割(,.$国家)
#>'summary()`已按'Country'对输出进行分组。可以使用“.groups”参数重写。
#>$England
#>#tibble:3 x 4
#>国家物种是否
#>             
#>1英格兰弗吉尼亚州2 8
#>2英国彩色7 15
#>3英格兰塞托萨14 5
#> 
#>苏格兰元
#>#tibble:3 x 4
#>国家物种是否
#>              
#>1苏格兰塞托萨5 14
#>2苏格兰弗吉尼亚6 12
#>3.颜色9 8
#> 
#>$Wales
#>#tibble:3 x 4
#>国家物种是否
#>             
#>1威尔士塞托萨4 8
#>2.彩色5 6
#>3威尔士弗吉尼亚州14 8

由(v2.0.0)于2021-06-01创建

您不能,因为在表中,行名存在。因此,所有数组中的顺序都是相同的。“它们很难使用“-[需要引用]。表和数组对于某些任务非常有用和简单,只是可能不是这个特定的任务。在表格/数组形式中,您可以执行类似于
addmargins(tab)
的操作来快速调查分类和,我甚至无法想象在
data.frame
中您会如何做。