小编Soi*_*Guy的帖子

使用ggplot2更改R中的x轴刻度标签

如何在ggplot2中更改x轴标签的名称?见下文:

ggbox <- ggplot(buffer, aes(SampledLUL, SOC)) + geom_boxplot()

ggbox <- ggbox + theme(axis.text.x=element_text(color = "black", size=11, angle=30, vjust=.8, hjust=0.8)) 

ggbox<- ggbox + labs(title = "Land cover Classes") + ylab("SOC (g C/m2/yr)") + xlab("Land cover classes")
Run Code Online (Sandbox Code Playgroud)

上面的代码创建了下图: 在此输入图像描述

我希望能够对这些类的第一个字母(即Crop,而不是crop)进行首映.

我已经尝试了下面的代码,但不知道在哪里放置它以及确切使用的功能. labels = c("Citrus", "Crop", "Cypress Swamp", ..........)

(我正在使用Windows 7,Rstudio)

r ggplot2 boxplot

16
推荐指数
1
解决办法
5万
查看次数

使用ggplot2的文件压缩选项

是否可以使用ggsave?压缩数字的文件大小?我尝试过使用compression = "lzw"参数,但文件大小保持不变.(使用R studio .98.501 OS-X Yosemite)

我的代码:

ggsave("Figure1.tiff", width = 14, height = 8, dpi=600, compression = "lzw")
Run Code Online (Sandbox Code Playgroud)

是否可以使用ggsave添加压缩参数?

compression r ggplot2

5
推荐指数
2
解决办法
1617
查看次数

每年(闰年)从 1 - 365 (366) 依次增加数字计数

我有每日天气数据,其中包含月份、月份、年份和数据的列。但我需要为一年中的某一天添加​​另一列。例如 1 - 365(闰年为 366)。

我根本不是一个程序员,我熟悉 seq() 例如,seq(1, 365) 但是上面的代码将在 365 处终止。我需要在考虑年份的同时按顺序增加数字,以便序列每年都开始(并且考虑闰年)。在此示例中,所有天气数据均从 1 月 1 日开始。非常感谢任何想法/建议/指示。

编辑:示例数据

example.data <- structure(list(V1 = 1:6, V2 = c(1L, 1L, 1L, 1L, 1L, 1L), 
    V3 = c(1950L, 1950L, 1950L, 1950L, 1950L, 1950L), 
    V4 = c(NA, NA, NA, NA, NA, NA), 
    V5 = c(0, 0, 0, 0, 0, 0)),
    .Names = c("V1", "V2", "V3", "V4", "V5"), row.names = c(NA, 6L), class =                "data.frame")`
Run Code Online (Sandbox Code Playgroud)

r

4
推荐指数
1
解决办法
972
查看次数

确定R中数据集中缺少的观测值(而不是NA)

我有一个相当大的数据集,其中包含近6000个观测值.我提供了另一个缺少观察结果的数据集.如果没有进行测量,则不用NA填充行/观测值,而是省略整行/观察.第二个数据集有5500行.

我需要确定哪些观察结果未被记录,或者换句话说,哪些行在第二个数据集中缺失.我不是指NAs或缺少值,而是指未进入数据集的观察.

在下面的例子中,每个观察(ID)也应该有11,12,13,14,21,22,23,24的"组"记录.但是,ID 206902只有11,12,14,21,22组,23,24.它缺少了13

在这个例子中,ID并不是真正唯一的,所以应该有8个ID.例如,ID 206901&group 11; ID 206901和第12组等

如何轻松确定缺少哪些观察结果(ID)?同样,每个ID应该有8条记录.

example <- structure(list(ID = c(206901L, 206901L, 206901L, 206901L, 206901L, 
206901L, 206901L, 206901L, 206902L, 206902L, 206902L, 206902L, 
206902L, 206902L, 206902L), group = c(11L, 12L, 13L, 14L, 21L, 
22L, 23L, 24L, 11L, 12L, 14L, 21L, 22L, 23L, 24L)), .Names = c("ID", 
"group"), sorted = "ID", class = c("tbl_dt", "tbl", "data.table", 
"data.frame"), row.names = c(NA, -15L), .internal.selfref = <pointer: 0x0000000000100788>)
Run Code Online (Sandbox Code Playgroud)

select r filter data.table

3
推荐指数
1
解决办法
58
查看次数

使用气候数据运营商 (CDO) 的每日数据的月雨天总和

我有每日时间分辨率的气候数据,并希望按月和按年计算有降水(例如,大于 1 毫米/天)的天数。

我试过eca_pd,1and eca_rr1,但这些命令返回所有年份的雨天总数。

例如, cdo eca_pd,1 infile outfile

是否有命令返回每个月和/或年的雨天?

weather netcdf nco netcdf4 cdo-climate

3
推荐指数
2
解决办法
716
查看次数

如何使用R重命名文件?

我有一堆文件名中包含“_001”的文件。我按照在线发布的脚本进行操作,我位于所有文件所在的目录中:

filez <- list.files()
sapply(filez, function(X) {file.rename(from=x, to=sub(pattern="_001", replacement="", x))})
Run Code Online (Sandbox Code Playgroud)

但我不断收到此错误消息:

file.rename(from = x, to = sub(pattern = "001", replacement = "")) 中的错误:找不到对象“x””。

谁能帮我解决这个问题?

r file file-rename

1
推荐指数
1
解决办法
3540
查看次数

对数据列表中的多个列执行操作

假设我在列表中有以下数据框:

df1 <- data.frame(x = runif(3), y = runif(3))
df2 <- data.frame(x = runif(3), y = runif(3))
df.list <- list(df1, df2)
Run Code Online (Sandbox Code Playgroud)

现在假设我想添加列x和y来获取列z我知道在数据帧中执行此操作,mutate就像这样简单:

dplyr::mutate(lapply(df.list, z = x + y))
Run Code Online (Sandbox Code Playgroud)

如何使用lapply对列表中的多个列执行操作?

r list lapply

1
推荐指数
1
解决办法
696
查看次数

在 R 中使用模式匹配从现有列创建新列

我正在尝试基于另一个使用模式匹配添加一个新列。我已经阅读了这篇文章,但没有得到想要的输出。

我想基于 GreatGroup 列创建一个新列 (SubOrder)。我尝试了以下方法:

SubOrder <- rep(NA_character_, length(myData))

SubOrder[grepl("udults", myData, ignore.case = TRUE)] <-  "Udults"
SubOrder[grepl("aquults", myData, ignore.case = TRUE)] <-  "Aquults"
SubOrder[grepl("aqualfs", myData, ignore.case = TRUE)] <-  "aqualfs"
SubOrder[grepl("humods", myData, ignore.case = TRUE)] <-  "humods"
SubOrder[grepl("udalfs", myData, ignore.case = TRUE)] <-  "udalfs"
SubOrder[grepl("orthods", myData, ignore.case = TRUE)] <-  "orthods"
SubOrder[grepl("udalfs", myData, ignore.case = TRUE)] <-  "udalfs"
SubOrder[grepl("psamments", myData, ignore.case = TRUE)] <-  "psamments"
SubOrder[grepl("udepts", myData, ignore.case = TRUE)] <-  "udepts"
SubOrder[grepl("fluvents", myData, ignore.case = TRUE)] <- …
Run Code Online (Sandbox Code Playgroud)

regex r pattern-matching

1
推荐指数
1
解决办法
3276
查看次数