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