Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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

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
Database 处理数据:给出条件的绘图_Database_R_Data Management - Fatal编程技术网

Database 处理数据:给出条件的绘图

Database 处理数据:给出条件的绘图,database,r,data-management,Database,R,Data Management,我有一个由“data”定义的数据帧和这个数据集的两个子集(scale1,scale2)。我想先按性别,然后按国家绘制这个比例,而不必每次都定义比例。我知道这在R中是可能的,可能是一个新手问题,但我就是找不到这样做的逻辑。我已经找过了,但找不到我想要的。如果有人能给我一个关于数据管理(而不是绘图)的线索,我将非常感激 我知道使用这个简单的数据帧可能每次都能更容易地定义子集,但我原来的数据帧有很多项,这样操作很困难 Data<- data.frame(item1=c(1, 2, 3, 4, 5

我有一个由“data”定义的数据帧和这个数据集的两个子集(scale1,scale2)。我想先按性别,然后按国家绘制这个比例,而不必每次都定义比例。我知道这在R中是可能的,可能是一个新手问题,但我就是找不到这样做的逻辑。我已经找过了,但找不到我想要的。如果有人能给我一个关于数据管理(而不是绘图)的线索,我将非常感激

我知道使用这个简单的数据帧可能每次都能更容易地定义子集,但我原来的数据帧有很多项,这样操作很困难

Data<- data.frame(item1=c(1, 2, 3, 4, 5, 1, 2, 3, 4, 5, NA, 5, NA, NA), 
                  item2=c(1, 2, 2, 4, 1, 1, 2, 3, 5, 5, NA, NA, NA, NA),
                  item3=c(1, 2, 2, 4, 1, 1, 2, 3, 5, 5, NA, NA, NA, NA),
                  item4=c(1, 2, 2, 4, 1, 1, 4, 3, 1, 5, NA, 3, NA, NA),
                  item5=c(1, 5, 2, 4, 2, 1, 2, 3, 5, 5, NA, NA, 1, NA),
                  item6=c(1, 2, 3, 4, 5, 1, 2, 3, 4, 5, NA, 5, NA, NA), 
                  item7=c(1, 2, 1, 5, 1, 2, 2, 3, 5, 5, NA, NA, NA, NA),
                  item8=c(1, 4, 2, 4, 3, 1, 2, 8, 5, 5, NA, NA, NA, NA),

                  gender=c(1, 2, 1, 2, 2,1, 2, 1, 2, 1, 1, 2, 1, 2), 
                  country=c(1, 2, 3, 3, 1,1, 2, 1, 3, 1, 3, 2, 1, 2))

scale1 <- subset(Data, select=c(item1, item2, item3, item4))
scale2 <- subset(Data, select=c(item5, item6, item7, item8))

Data我仍然不确定您的目标,但这可能有助于:

female <- Data$gender == 1
scale1 <- names(Data) %in% c("item1", "item2", "item3", "item4")

boxplot(Data[female, scale1], xlab="", xaxt = "n", col="gray", main="Woman")
boxplot(Data[!female, scale1], xlab="", xaxt = "n", col="gray", main="Man")

您的子集是相同的。复制粘贴时我没有意识到,谢谢。我不确定您是如何进行打印的。请将此添加到您的示例中。@Roland编辑,我希望现在能得到更好的解释:)我仍然不了解全部情况。所选子集的基础是什么?是否要为预定义的子集列表创建独立的绘图?还是所有可能的子集?或者你想要分面的情节?在你的上下文中,“更好的方式”到底意味着什么?当只有两个值时,它可能会起作用:)所以它很有帮助。我尝试过这样的逻辑,尝试做country==1/2/3,它也起作用,所以它很完美:)谢谢
female <- Data$gender == 1
scale1 <- names(Data) %in% c("item1", "item2", "item3", "item4")

boxplot(Data[female, scale1], xlab="", xaxt = "n", col="gray", main="Woman")
boxplot(Data[!female, scale1], xlab="", xaxt = "n", col="gray", main="Man")