数据:
type size amount
T 50% 48.4
F 50% 48.1
P 50% 46.8
T 100% 25.9
F 100% 26.0
P 100% 24.9
T 150% 21.1
F 150% 21.4
P 150% 20.1
T 200% 20.8
F 200% 21.5
P 200% 16.5
Run Code Online (Sandbox Code Playgroud)
我需要使用ggplot(x轴 - >"type",y轴 - >"amount",group by"size")绘制上述数据的条形图.当我使用下面的代码时,我没有按照数据中显示的顺序获得变量"type"和"size".请看图.我已经使用了以下代码.
ggplot(temp, aes(type, amount , fill=type, group=type, shape=type, facets=size)) +
geom_bar(width=0.5, position = position_dodge(width=0.6)) +
facet_grid(.~size) +
theme_bw() +
scale_fill_manual(values = c("darkblue","steelblue1","steelblue4"),
labels = c("T", "F", "P"))
Run Code Online (Sandbox Code Playgroud)
.
为了解决订单问题,我使用了以下的变量"type"的因子方法.请看图.
temp$new = factor(temp$type, levels=c("T","F","P"), labels=c("T","F","P"))
Run Code Online (Sandbox Code Playgroud)

但是,现在我不知道如何修改变量"size"的顺序.它应该是50%,100%.150%和200%.
我在R中不断收到“达到已用时间限制”错误。我正在使用Studio。
这是我要运行的代码,是ggplot中的一个简单图形:
require(ggplot2)
docgraph <- ggplot(data = plotnvto, aes(calluna, doc)) +
geom_point(aes(x = calluna, y = doc, color = "calluna"), size = 3) +
geom_point(aes(x = sedge, y = doc, colour = "sedge"), size = 3) +
geom_smooth(aes(calluna,doc), method=lm, se=FALSE, color = "purple") +
geom_smooth(aes(sedge,doc), method=lm, se=FALSE, color = "green") +
scale_colour_manual("",
values = c("calluna"="purple", "sedge"="green")) +
labs(x= "Percent Cover", y= "DOC (mg/L)") +
annotate(geom="text", x=10, y=36, label="y = -0.4498x + 26.6843
R² = 0.1836, p = 0.1646",color="purple") +
annotate(geom="text", …Run Code Online (Sandbox Code Playgroud) 尝试使用 pivot_longer。我不知道如何使用“names_sep”或“names_pattern”来解决这个问题。
dat <- tribble(
~group, ~BP, ~HS, ~BB, ~lowerBP, ~upperBP, ~lowerHS, ~upperHS, ~lowerBB, ~upperBB,
"1", 0.51, 0.15, 0.05, 0.16, 0.18, 0.5, 0.52, 0.14, 0.16,
"2.1", 0.67, 0.09, 0.06, 0.09, 0.11, 0.66, 0.68, 0.08, 0.1,
"2.2", 0.36, 0.13, 0.07, 0.12, 0.15, 0.34, 0.38, 0.12, 0.14,
"2.3", 0.09, 0.17, 0.09, 0.13, 0.16, 0.08, 0.11, 0.15, 0.18,
"2.4", 0.68, 0.12, 0.07, 0.12, 0.14, 0.66, 0.69, 0.11, 0.13,
"3", 0.53, 0.15, 0.06, 0.14, 0.16, 0.52, 0.53, 0.15, 0.16)
Run Code Online (Sandbox Code Playgroud)
所需的输出(宽数据的第一行)
group names values lower …Run Code Online (Sandbox Code Playgroud) 我有以下数据框让我们称之为df
id type company
1 NA NA
2 NA ADM
3 North Alex
4 South NA
NA North BDA
6 NA CA
Run Code Online (Sandbox Code Playgroud)
我想只保留"类型"和"公司"栏中没有NA的记录
id type company
3 North Alex
NA North BDA
Run Code Online (Sandbox Code Playgroud)
我累了
df_non_na <- df[!is.na(df$company) || !is.na(df$type), ]
Run Code Online (Sandbox Code Playgroud)
但这没效果.
提前致谢
好吧,我挥舞着我的白旗。
我正在尝试对我的数据集计算 loess 回归。
我希望 loess 计算一组不同的点,这些点绘制为每个组的平滑线。
问题是 loess 计算是在逃避dplyr::group_by函数,所以 loess 回归是在整个数据集上计算的。
互联网搜索让我相信这是因为dplyr::group_by不应该以这种方式工作。
我只是不知道如何在每个组的基础上进行这项工作。
以下是我尝试失败的一些示例。
test2 <- test %>%
group_by(CpG) %>%
dplyr::arrange(AVGMOrder) %>%
do(broom::tidy(predict(loess(Meth ~ AVGMOrder, span = .85, data=.))))
> test2
# A tibble: 136 x 2
# Groups: CpG [4]
CpG x
<chr> <dbl>
1 cg01003813 0.781
2 cg01003813 0.793
3 cg01003813 0.805
4 cg01003813 0.816
5 cg01003813 0.829
6 cg01003813 0.841
7 cg01003813 0.854
8 cg01003813 0.866
9 cg01003813 0.878
10 cg01003813 0.893 …Run Code Online (Sandbox Code Playgroud) 我试图根据矢量中焦点值之前或之后的一个元素值来识别不匹配的值.有什么想过怎么办?
让我们说,我有一个向量:x<-c(1,1,2,1,3,3).如果element[i]与item i(element[i-1]和element[i+1])之前或之后的元素匹配.如果匹配element[i]应该等于"是",否则它应该等于"否".
预期的输出x<-c(1,1,2,1,3,3)应该是c("yes","yes","no","no","yes","yes").
我会创建几个日期。
library(lubridate)
x <- ymd(c("2012-03-26", "2012-05-04", "2012-09-23", "2012-12-31"))
Run Code Online (Sandbox Code Playgroud)
我可以从这些x值中提取年份和季度。
quarter(x, with_year = TRUE, fiscal_start = 10)
[1] 2012.2 2012.3 2012.4 2013.1
但我似乎不能只提取财政年度。这行不通,但什么会呢?
year(x, with_year = TRUE, fiscal_start = 10)
我收到以下错误消息:
年份错误(x,with_year = TRUE,Financial_start = 10):未使用的参数(with_year = TRUE,Financial_start = 10)
构造直方图后,我想在绘图中添加上边界/轮廓。我不想使用,geom_bar或者geom_col因为我不想每个容器的垂直边界。
我的尝试包括使用geom_histogram和stat_bin(geom = "bin"),但是垃圾箱无法对齐。
我每个GEOM(内调整参数bins,binwidth,center,boundary),并一直无法对齐这些分布。关于SO也有类似的问题(在geom_histogram或stat_bin上覆盖geom_points),但似乎没有一个类似的问题可以挖掘或提供解决方案。
这是我的几何图层不对齐的情况:
set.seed(2019)
library(ggplot2)
library(ggthemes)
df <- data.frame(x = rnorm(100),
y = rep(c("a", "b"), 50))
p <- df %>%
ggplot(aes(x, fill = y)) +
geom_histogram() +
facet_wrap(vars(y)) +
theme_fivethirtyeight() +
guides(fill = F)
Run Code Online (Sandbox Code Playgroud)
p + stat_bin(geom = "step")
Run Code Online (Sandbox Code Playgroud)
我希望这两个几何图形对齐。我已经测试了各种虚拟数据,但这仍然是一个问题。这些几何体为什么不自然对齐?如何调整这些层中的任何一层以对齐?有没有比结合直方图和统计盒更好的替代方法来实现我想要的图了?
我不太精通 R,但最近安装了 ggpubr 包,因为想要制作成对的箱线图。我试过一直在使用:
ggpaired(question1, cond1 = question1$q1, cond2 = question1$q2,
fill = "condition", palette = "jco")
Run Code Online (Sandbox Code Playgroud)
我不断出现错误消息:
错误:只能将字符串转换为符号
并且系统提示我运行最后一次错误检查。输出如下:
Only strings can be converted to symbols
Backtrace:
1. ggpubr::ggpaired(...)
10. tidyr::gather_(...)
12. rlang::syms(gather_cols)
13. rlang:::map(x, sym)
14. base::lapply(.x, .f, ...)
15. rlang:::FUN(X[[i]], ...)
Run Code Online (Sandbox Code Playgroud)
有人可以请帮助我!!非常感谢!
我正在尝试使用RJDBC连接R和Teradata.
我发现这个链接有一个使用mysql的例子,但我不知道如何用teradata做同样的事情.
library(RJDBC)
drv <- JDBC("com.mysql.jdbc.Driver",
"/etc/jdbc/mysql-connector-java-3.1.14-bin.jar",
identifier.quote="`")
conn <- dbConnect(drv, "jdbc:mysql://localhost/test", "user", "pwd")
Run Code Online (Sandbox Code Playgroud)
我已经下载了这个驱动程序:http: //downloads.teradata.com/download/connectivity/jdbc-driver 但是我不确定我应该在哪里引用该目录.
我知道有一个teradataR包在那里,但我不知道它是否真的使用R 3.0.0工作.
目前我只是将数据从数据库中拉出来很有意思.简单的事情SELECT * FROM table.问题是RODBC很慢......
还有其他选择来完成这项任务吗?