频率分布中的R
对不起,如果这是一个基本的问题,但是否有可能创建一个数据表像的频率分布:频率分布中的R
Town 1 Town 1 Town 2 Town 2 Town 3
Fish Yes Yes Yes No No
Crops No No Yes No Yes
Livestock Yes Yes No No Yes
如果频率分布显示的频率每个地方每个变量?
编辑
谢谢那些谁回答,你是对的,这是更好,如果我把一些实际数据。 好的,这与我的原始数据非常接近。正如你所看到的,城镇并不是独一无二的(因为这来自对城镇居民的调查)。所以我希望将每个产品(鱼,作物,牲畜等)的频率总结在每个城镇上,并最终将其绘制成饼图/直方图。
喜欢的东西:
Town 1 Town 2 Town 3
Fish 2 1 0
Crops 0 1 1
Livestock 2 0 1
虽然我认为这将显示为百分比更好?无论如何,感谢你给我的任何帮助,我不认识任何有经验的人,所以我盲目地回避。
扩大对我的评论,让我们先从一些重复的样品数据:
mydf <- data.frame(item = c("fish", "crops", "ls"),
T1 = c("Y", "N", "Y"),
T1 = c("Y", "N", "Y"),
T2 = c("Y", "Y", "N"),
T2 = c("N", "N", "N"),
T3 = c("N", "Y", "Y"), check.names = FALSE)
mydf
# item T1 T1 T2 T2 T3
# 1 fish Y Y Y N N
# 2 crops N N Y N Y
# 3 ls Y Y N N Y
melt
来自“reshape2”不会很好地与重复的列名称一起工作,所以先让它们唯一。
names(mydf) <- ave(names(mydf), names(mydf),
FUN = function(x) paste0(x, "_", seq_along(x)))
现在,进行类似于我曾建议:
library(reshape2)
x <- melt(mydf, id.vars="item_1") ## Melt the dataset
xY <- x[x$value == "Y", ] ## Subset just "Y" values
## Tabulate
table(xY$item_1, sapply(strsplit(as.character(xY$variable), "_"), "[[", 1))
#
# T1 T2 T3
# crops 0 1 1
# fish 2 1 0
# ls 2 0 1
谢谢@AnandaMahto !!!这对我有用!感谢您帮助我弄清楚如何处理重复的名称。 – James
@James,'table'的输出已经是一个'matrix',所以将表的输出分配给一个对象,比如说“tableout”,然后使用'barplot(tableout,beside = TRUE)'。 – A5C1D2H2I1M1N2O1R2T1
好吧,现在就明白了,谢谢! – James
我希望我理解你的问题的权利
# constructing your data frame
df <- data.frame(v1=c(1,0,1),v2=c(0,0,1),v3=c(1,1,0))
rownames(df) <- c('p1','p2','p3')
# calculating the distributions
t(t(df)/apply(df,2,sum))
使用table
:
set.seed(1)
dat <- table(paste('Place',sample(1:3,10,rep=T),sep='_'),
paste('Variable',sample(1:3,10,rep=T),sep='_'))
Variable_1 Variable_2 Variable_3
Place_1 1 0 2
Place_2 1 1 2
Place_3 0 2 1
编辑
ifelse(dat>0,'Yes','No')
Variable_1 Variable_2 Variable_3
Place_1 "Yes" "No" "No"
Place_2 "Yes" "Yes" "Yes"
Place_3 "Yes" "No" "Yes"
您是否在寻找像'库(reshape2); data.frame(table(melt(as.matrix(mydf))))'或'library(reshape2);表(熔化(as.matrix(mydf)))'也许?如果你可以编辑你的问题,以这个小例子来显示你想要的输出,那将是一件好事。 – A5C1D2H2I1M1N2O1R2T1
是的,谢谢@AnandaMahto的评论,我编辑了数据!即使使用重复的列名称也会重新工作吗? – James