我在R中制作一个非常简单的图,并希望更改y轴上的字体大小(年份).我用过所有的cex.命令,并可以改变除这些年以外的一切.
这是我的矩阵(inputm):
2010 2011
CC 0.5550 0.480
P 3.6700 3.865
PF 1.4625 1.685
Run Code Online (Sandbox Code Playgroud)
我的代码:
barplot(inputm,beside=T, horiz=TRUE, xlim=c(-7,7),
col=c("black","blue","red"), xlab="Mg C/ha", cex.axis=2)
Run Code Online (Sandbox Code Playgroud)
我可以让x轴标签改变,但不能改变y.我在这里错过了什么?
我创建了一个两个图(两年)气候数据(温度和降水)的图形,看起来与我想要的完全一样,除了我的一个轴有太多刻度线.对于我在这个图上所做的一切,我找不到一种方法来指定更少的刻度线,而不会弄乱其他部分.我还想指定刻度线的位置.这是图:
您可以看到顶轴的刻度线只是模糊在一起,所选的数字对我来说不是很有意义.我怎么能告诉R我真正想要的是什么?
这是我的代码:
par(mfrow=c(2,1))
par(mar = c(5,4,4,4) + 0.3)
plot(cobs10$day, cobs10$temp, type="l", col="red", yaxt="n", xlab="", ylab="",
ylim=c(-25, 30))
axis(side=3, col="black", at=cobs10$day, labels=cobs10$gdd)
at = axTicks(3)
mtext("Thermal Units", side=3, las=0, line = 3)
axis(side=2, col='red', labels=FALSE)
at= axTicks(2)
mtext(side=2, text= at, at = at, col = "red", line = 1, las=0)
mtext("Temperature (C)", side=2, las=0, line=3)
par(new=TRUE)
plot(cobs10$gdd, cobs10$precip, type="h", col="blue", yaxt="n", xaxt="n", ylab="",
xlab="")
axis(side=4, col='blue', labels=FALSE)
at = axTicks(4)
mtext(side = 4, text = …Run Code Online (Sandbox Code Playgroud) 当我将数据放入nlme中时,我第一次尝试都没有成功,而且nlme(fit.model)习惯了以下情况:
Error in nlme.formula(model = mass ~ SSbgf(day, w.max, t.e, t.m), random = list( :
step halving factor reduced below minimum in PNLS step
Error in MEestimate(nlmeSt, grpShrunk) :
Singularity in backsolve at level 0, block 1
Run Code Online (Sandbox Code Playgroud)
所以我回去
1)更改x轴的单位(例如,从年到天,或者从天到成长度天)。
2)在我的数据集中进行ax = 0,y = 0的测量
3)添加一个 random=pdDiag()
4)缺乏随机性和固定性
5)整理我的数据集,并尝试在不同时间拟合不同的部分
6)实现非常简单的拟合,然后使用update来使模型正确
最终似乎有些工作。还有其他人要添加到此列表吗?什么可以帮助您使nlme处理数据?
我意识到这个问题可能会结束,但是如果对如何改写SO可以接受的任何建议,我将不胜感激。
这是一个示例,其中我尝试了其中一些操作,但到目前为止还没有成功:
数据:https : //www.dropbox.com/s/4inldx7617fip01/proots.csv。这只是整个集合的一部分。
代码:
roots<-read.table("proots.csv", header = TRUE)
#roots$day[roots$year == 2007] <- 0 #when I use a dataset with time=0, mass=0
roots$day[roots$year …Run Code Online (Sandbox Code Playgroud) 我正在尝试计算累积金额并mutate用于创建新列.我正在为多列执行此操作,并且每个列都在不同位置丢失数据.
day water nitrogen
1 4 5
2 NA 6
3 3 NA
4 7 NA
5 2 9
6 NA 3
7 2 NA
8 NA 2
9 7 NA
10 4 3
Run Code Online (Sandbox Code Playgroud)
我试试
mutate(df, sumwater = cumsum(water))%>%
mutate(sumnitrogen = cumsum(nitrogen))
Run Code Online (Sandbox Code Playgroud)
要么
mutate(df, sumwater = cumsum(water, na.rm = TRUE))%>%
mutate(sumnitrogen = cumsum(nitrogen, na.rm = TRUE))
Run Code Online (Sandbox Code Playgroud)
既不起作用.我知道我们能做到na.rm=TRUE的summarize功能.有没有办法让它工作mutate?我更喜欢一个dplyr答案,因为实际上这是一长串管道的一部分.
我正在尝试为以下示例数据插入样条:
trt depth root carbon
A 2 1 14
A 4 2 18
A 6 3 18
A 8 3 17
A 10 1 12
B 2 3 16
B 4 4 18
B 6 4 17
B 8 2 15
B 10 1 12
Run Code Online (Sandbox Code Playgroud)
通过以下方式:
new_df<-df%>%
group_by(trt)%>%
summarise_each(funs(splinefun(., x=depth, method="natural")))
Run Code Online (Sandbox Code Playgroud)
我得到一个Error: not a vector,但我不明白为什么不。我没有以正确的方式表达功能吗?
我正在编写一份正在编写成pdf的文档,我需要对每一行进行编号,以便审阅者可以参考特定的句子.我已经找到了关于编号代码块的一些阅读,但是只是文本呢?
我有一个数据框列表,所有数据框都有相同数量的列(和行).我想用它们绑定它们purrr::map_df.
我试着map_df(my_list)去
Error in as_mapper(.f, ...) : argument ".f" is missing, with no default
我不确定我的清单有什么问题.它看起来不错(每个数据帧都有一个唯一的名称):
我有一个数据框,我需要添加一个列,以包含对应于现有数据帧的每一行的3种.希望下面的例子清楚地表明:
Site Year Trt
A 2016 bowl
A 2016 vane
A 2017 target
A 2017 stick
B 2016 bowl
B 2016 vane
B 2017 target
B 2017 stick
species<-c("species1", "species2", "species3")
Run Code Online (Sandbox Code Playgroud)
然后我想去
Site Year Trt Species
A 2016 bowl species1
A 2016 vane species1
A 2017 target species1
A 2017 stick species1
A 2016 bowl species2
A 2016 vane species2
A 2017 target species2
A 2017 stick species2
A 2016 bowl species3
A 2016 vane species3
A 2017 target species3 …Run Code Online (Sandbox Code Playgroud) 我用ggplot 0.8.9做了很多数字(这就是我现在还在运行的).现在我需要修改这些数字以包含图例.我遇到了各种难以解决的问题,因为我对这些问题感到非常困惑theme,opts而且很多SO答案都适用于以后的版本.
在这一点上,似乎我需要更新ggplot2并重写我的所有代码,这样我才能传说我的数字. 这是真的? 我已经阅读了ggplot2过渡指南,它看似真实.
这是旧代码的样子(不产生图例):这里是为了重现性而提供的数据:mean10v2和stderr10.
me10<-read.table("mean10v2.txt", header=TRUE)
se10<-read.table("stderr10.txt", header=TRUE)
ggplot() +
geom_ribbon(aes(x = me10[me10$trt=="CC", "tu"], ymin=(me10[me10$trt=="CC", "biomassA"]-
se10[se10$trt=="CC", "biomassA"]), ymax=(me10[me10$trt=="CC",
"biomassA"]+se10[se10$trt=="CC", "biomassA"])), alpha=0.25) +
geom_line(aes(me10[me10$trt=="CC", "tu"], y=me10[me10$trt=="CC", "biomassA"]), size=1)+
geom_ribbon(aes(x = me10[me10$trt=="PF", "tu"], ymin=(me10[me10$trt=="PF", "biomassA"]-
se10[se10$trt=="PF", "biomassA"]), ymax=(me10[me10$trt=="PF",
"biomassA"]+se10[se10$trt=="PF", "biomassA"])), alpha=0.25) +
geom_line(aes(me10[me10$trt=="PF", "tu"], y=me10[me10$trt=="PF", "biomassA"]),
colour="red2", linetype="dashed", size=1) +
geom_ribbon(aes(x = me10[me10$trt=="P", "tu"], ymin=(me10[me10$trt=="P", "biomassA"]-
se10[se10$trt=="P", "biomassA"]), ymax=(me10[me10$trt=="P",
"biomassA"]+se10[se10$trt=="P", "biomassA"])), alpha=0.25) +
geom_line(aes(me10[me10$trt=="P", "tu"], y=me10[me10$trt=="P", "biomassA"]),
colour="blue3", linetype="dotted", size=1) + …Run Code Online (Sandbox Code Playgroud) 我希望制作一个twitter-blogdown博客,其中有些人发布了图片,但我不确定它是否可能.我使用'twitteR'来抓取一个人的所有帖子,但看起来我必须做一些完全不同的事情来获取图像而不是文本.
任何关于采取何种方向的建议都将受到赞赏.
我想删除数据帧的最后14行并将它们放入自己的数据帧中.问题是,每隔几天,我们会在末尾添加更多行,但我们总是想要最后14行.数据框按日期排序,例如:
Date SW_30cm_b ST_30cm_b NO3_30ppm
2015-06-22 85.729 19.548 17.864
2015-06-23 83.844 18.736 17.514
2015-06-24 82.619 17.984 17.297
2015-06-25 80.439 17.815 16.859
2015-06-26 77.227 17.756 16.132
2015-06-27 74.436 17.720 15.468
Run Code Online (Sandbox Code Playgroud)
dplyr答案没有必要,但会很棒!
我需要删除一年中每天都没有测量的年份.假装这是一整套,我想摆脱所有2001年的行,因为2001年有一个缺失的测量.
year day value
2000 1 5
2000 2 3
2000 3 2
2000 4 3
2001 1 2
2001 2 NA
2001 3 6
2001 4 5
Run Code Online (Sandbox Code Playgroud)
对不起,我没有代码尝试,我现在无法绕过它,我花了很长时间才能做到这一点.喜欢我可以%>%in的东西,因为它是在长期结束时.
我需要处理文件夹中的所有文件,文件按顺序命名,所以我认为这是循环的好时机.处理单个文件的代码很简单:
df<-read.table("CLIM0101.WTG", skip = 3, header = TRUE)
df<-df[,-1]
df$year<-2014
df$day<-c(1:365)
write.table(df, "clim201401.txt", rownames = "FALSE")
Run Code Online (Sandbox Code Playgroud)
要读取的99个文件是"CLIM0101.WTG"到"CLIM9901.WTG",它们应该通过"clim201499.txt"写入"clim201401.txt".这是包含文件的文件夹的链接:
https://www.dropbox.com/sh/y255e07wq5yj1nd/4dukOLxKgm
那么这里的问题是什么?我不明白如何写一个循环,并没有找到如何这样做的很好的描述.以前的循环问题有非循环的答案,但似乎这次它真的是我需要的.