我正在尝试在R上创建一个图。有两个感兴趣的变量(列):“TrialType”和“SMTscenes.RESP” - TrialType的值是“旧”或“新”,而SMT~' s值为“1”,“2”,“3”,“4”或“r”。这是正确的,“r”不是5,这使得这有点令人沮丧。
hist(c(df$TrialType, df$SMTscenes.RESP))
是我到目前为止所尝试过的,它给了我this histogram,它没有显示“旧”和“新”之间的区别 - 或者如果有的话,对我来说并不是那么清楚。
根据其他人的建议(之前),我已经完成了:
table(c(df$SMTscenes.RESP, df$TrialType))
输出:
1 2 3 4 5
80 150 25 17 16
现在以前的直方图形式是有道理的 - 但这不是我想要的。
如果我能提供其他信息/数据,请告诉我。如果是这样,请告诉我如何上传.csv文件。
提前致谢!
答案 0 :(得分:1)
这是一个很好的起点。您只需要立即自定义外观:
scene1 <- c(rep(x = c("new"), 10), rep(x = c("old"), 2))
scene2 <- c(rep(x = c("new"), 60), rep(x = c("old"), 20))
scene3 <- c(rep(x = c("new"), 5), rep(x = c("old"), 20))
scene4 <- c(rep(x = c("new"), 2), rep(x = c("old"), 18))
sceneR <- c(rep(x = c("new"), 0), rep(x = c("old"), 18))
TrialType <- c(
rep("1", length(scene1)),
rep("2", length(scene2)),
rep("3", length(scene3)),
rep("4", length(scene4)),
rep("r", length(sceneR)))
SMTscenes.RESP <- c(
scene1,
scene2,
scene3,
scene4,
sceneR
)
df <- data.frame(TrialType, SMTscenes.RESP)
library(ggplot2)
ggplot(data = df, aes(SMTscenes.RESP)) +
geom_bar() +
facet_grid(. ~ TrialType)
答案 1 :(得分:0)
首先,你真的需要改进你的问题。
然后,您可以借助两个软件包实现您的目标:data.table
和ggplot2
:
# create dummy data (next time, provide some, please!)
set.seed(1)
a <- data.frame(scenes= sample(c("1","2","3","4","r"),20,TRUE),
type=sample(c("New","Old"),20, TRUE))
# load packages
library(data.table)
library(ggplot2)
# convert data frame to data table
setDT(a)
# generate counts:
b <- a[, .N, by=.(scenes, type)]
# generate plot:
ggplot(b, aes(x=type, y=N))+
geom_bar(stat = "identity")+
facet_wrap(facets = "scenes")
数据表调用中的 .N
创建一个带有计数的新变量。 by=
定义了您想要的分组。