小编kur*_*dtc的帖子

R:for循环中的文本进度条

我有一些示例代码,其中包含for循环并创建一些这样的图(我的实际数据创建了数千个图):

xy <- structure(list(NAME = structure(c(2L, 3L, 1L, 1L), .Label = c("CISCO","JOHN", "STEPH"), class = "factor"), ID = c(41L, 49L, 87L, 87L), X_START_YEAR = c(1965L, 1948L, 1959L, 2003L), Y_START_VALUE = c(940L,-1760L, 110L, 866L), X_END_YEAR = c(2005L, 2000L, 2000L, 2007L), Y_END_VALUE = c(940L, -1760L, 110L, 866L), LC = structure(c(1L,1L, 2L, 2L), .Label = c("CA", "US"), class = "factor")), .Names = c("NAME", "ID", "X_START_YEAR", "Y_START_VALUE", "X_END_YEAR", "Y_END_VALUE","LC"), class = "data.frame", row.names = c(NA, -4L))

ind <- split(xy,xy$ID) # split by ID for …
Run Code Online (Sandbox Code Playgroud)

for-loop r function progress-bar

18
推荐指数
4
解决办法
2万
查看次数

R:将文本添加到绘图区域外的右下角的图中

我正在绘制baseR中的多个图形,我试图在我的图形的下部右下角绘制一个文本.我尝试过使用,mtext()但这并没有给我想要的结果.你会怎么做?最终的想法是生成如下图所示的内容.我怎么能这样做?

在此输入图像描述

这是我用来生成图的代码.

xy <- data.frame(NAME=c("NAME1", "NAME1","NAME1","NAME1","NAME2","NAME2","NAME2"),ID=c(47,47,47,47,259,259,259),YEAR=c(1932,1942,1965,1989,2007,2008,2014),VALUE=c(0,NA,-6,-16,0,-9,-28), test=c("text1","text1","text1","text1","text2","text2","text2"))

# split data by index 
ind <- split(x = xy,f = xy[,'ID'])

plot1 <- function(x) {
  fname <- paste0(x[1, 'ID'], '.png')
  png(fname, width=1679, height=1165, res=150)
  par(mar=c(6,8,6,5))
  plot(x = c(1946, 2014),
       y = range(x$VALUE, na.rm=TRUE),
       type='n',
       main=x[1, 'NAME'],
       xlab="Time [Years]",
       ylab="Value [m]")
  axis(2, at = seq(-100000, 100000, 100), cex.axis=1, labels=FALSE, tcl=-0.3)
  points(x[,c('YEAR','VALUE')], type="l", lwd=2)
  points(x[,c('YEAR','VALUE')], type="p", lwd=1, cex=0.5, pch=21, bg='white')
  abline(h=0)
  mtext(x$test, side=1, )

  dev.off()
}

plot2 <- function(x) {
  fname <- …
Run Code Online (Sandbox Code Playgroud)

plot text r

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

R:在函数中需要有限的'ylim'值

我想在data.frame中xy为每个组绘制数据(定义方式ID).当1946年之前的一年是一组时,plot 2应该执行.当年份在1946年至2014年之间时,plot1应该执行.

我的问题:没有NA值就可以正常工作,但由于我有数据空白,我依靠NAs来定义这些数据空白.这就是我收到错误的原因:error in plot.window(need finite 'ylim' values).我试图在y轴放入finite=T,plot1但这会产生subscript out of bounds错误.有没有办法解决这个问题,图形是否正确绘制?

以下是我的代码:它很长但是大部分代码都包含plot()我依赖的选项.

# read in sample data and split it up by group (defined by ID)
xy <- data.frame(NAME=c("NAME2","NAME2","NAME2","NAME2","NAME2","NAME3","NAME3","NAME3","NAME3","NAME5","NAME5","NAME5","NAME5"), ID=c(48,48,48,48,48,32,32,32,32,67,67,67,67),YEAR=c(1981,1983,1984,1988,1989,1984,1984,1988,1988,1899,1933,1948,1958),VALUE=c(0,205,-570,0,-310,-3680,-3680,NA,-3680,0,NA,13,-98))
ind <- split(x = xy,f = xy[,'ID'])

# Plot Scenario 1: if only years between 1946 and 2014 are present for each group do this:
  plot1 <- function(x) {
  fname <- paste0(x[1, …
Run Code Online (Sandbox Code Playgroud)

plot r function range na

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

R:按两列和按组过滤两个data.frames,以获取重复值

我有一个data.frame dat存储我的正常数据和组定义ID.

data <- structure(list(NAME = structure(c(1L, 1L, 2L), .Label = c("NAME1", "NAME2"), class = "factor"), ID = c(23L, 23L, 57L), REF_YEAR = c(1920L, 1938L, 1869L), SURV_YEAR = c(1938L, 1962L, 1872L), VALUE = c(20L, 40L, 34L)), .Names = c("NAME", "ID", "REF_YEAR", "SURV_YEAR","VALUE"), class = "data.frame", row.names = c(NA, -3L))

  NAME  ID REF_YEAR SURV_YEAR VALUE
1 NAME1 23     1920      1938    20
2 NAME1 23     1938      1962    40
3 NAME2 57     1869      1872    34
Run Code Online (Sandbox Code Playgroud)

我有一个data.frame,dat_q我想比较一下 …

compare r subset filter

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

将文件扩展名添加到R中文件夹中的所有文件

循环的结果是,文件夹中有很多文件没有文件扩展名。

我怎么能在文件夹中添加文件扩展名(png格式)的所有文件,同时保持原来的名称,例如,从NAME1NAME1.pngNAME3NAME3.pngNAME6NAME6.png,使用R等?

file-extension r rename

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

R:将文件列表中的多个绘图保存到单个文件中(png 或 pdf 或其他格式)

我有超过 10 个文件(最后有数百个......)。我在 R 中生成的 png 格式保存到一个文件夹中。

我的问题:如何将这些文件保存到多图(例如,一页上的 4 个数字按 2 行和 2 列排列)?

我知道这可以通过使用合并到绘图循环中,par(mfrow=c(2,2))但是我怎么能在生成后调用文件夹中的文件呢?

plot r

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

R:过滤掉数据框中的非数值

我有来自 .csv 文件的以下数据框,其中包含更多行,但为了保持简单,我将其范围缩小到这三行。您还可以在此处访问 csv 文件:https ://dl.dropboxusercontent.com/u/16277659/filter.csv

NAME;       YEAR;   VALUE
SAMPLE1;    1969;   6
SAMPLE1;    1970;   -6
SAMPLE1;    1971;   -7
SAMPLE1;    1972;   =-X
SAMPLE1;    1972;   ST
SAMPLE1;    1972;   3
SAMPLE1;    1975;   -7
SAMPLE1;    1976;   3
SAMPLE1;    1977;   3
SAMPLE1;    1978;   0
SAMPLE2;    1991;   -15
SAMPLE2;    1992;   =X
SAMPLE2;    1992;   -58
SAMPLE2;    1994;   -40
Run Code Online (Sandbox Code Playgroud)

我想做的是:有时我有定性值(如 =-X、ST 等),我不一定想放弃这些值,但如果同年有一个数值(在 SAMPLE1 1972 = -X 和 ST),我想只保留数值并删除其他值。

你会怎么做?感谢您的帮助。

csv r dataframe

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

R:将工作空间中的所有data.frame保存为单独的.RData文件

我有几个data.frames环境,我想保存到单独的.RData文件中.有没有能够保存到整个工作区的功能?

我通常只使用以下函数执行此操作:

save(x, file = "xy.RData")
Run Code Online (Sandbox Code Playgroud)

但有没有办法可以一次性保存所有data.frames?

workspace r save

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

R:数据帧修改,代码性能增强

我在R中的数据框中的采样数据看起来像这样.

 NAME  ID SURVEY_YEAR REFERENCE_YEAR SUM SUM_REFYEAR
1 NAME1  47        1960           1959  -6           0
2 NAME1  47        1961           1960 -10          -6
3 NAME1  47        1965           1963 -23         -10
4 NAME2 259        2007           2004  -9           0
5 NAME2 259        2010           2009  NA           0
6 NAME2 259        2014           2011 -40          -9
7 NAME3 765        1888           1885   5           0
8 NAME3 765        1889           1888  12           5
9 NAME3 765        1890           1889  22          12
Run Code Online (Sandbox Code Playgroud)

我正在使用下面的代码修改数据,从而生成此数据帧.

    NAME  ID SURVEY_YEAR REFERENCE_YEAR SUM SUM_REFYEAR
1  NAME1  47 …
Run Code Online (Sandbox Code Playgroud)

performance r dataframe

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