小编use*_*840的帖子

使用lapply在数据帧列表上应用函数并将输出保存到具有不同名称的文件

我有一个数据框列表,并给列表中的每个元素(例如每个数据框)一个名称:

例如

df1 <- data.frame(x = c(1:5), y = c(11:15))  
df2 <- data.frame(x = c(1:5), y = c(11:15))  
mylist <- list(A = df1, B = df2)  
Run Code Online (Sandbox Code Playgroud)

我有一个函数,我想应用于每个数据框; 在这个函数中,我想包含一行来将结果写入文件(最终我想做更复杂的事情,比如保存每个数据框的两个变量之间相关性的图,但我想我开始很简单)

例如

NewVar <- function(mydata, whichVar, i) {  
mydata$newVar <- mydata[, whichVar] + 1  
write.csv(mydata, file = i)  
}
Run Code Online (Sandbox Code Playgroud)

我想lapply()用于将此函数应用于列表中的每个数据框

就像是:

hh<-lapply(mylist, NewVar, whichVar = "y")
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何在lapply的上下文中分配"i",以便i迭代数据框列表中的名称,保存具有不同名称的多个文件(在本例中,两个文件名为AB)修改过的数据帧.

r lapply dataframe

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

PCA使用R中的栅格数据集

我想要在PCA中处理几个大型栅格(用于生成摘要栅格).我看过几个例子,人们似乎只是简单地调用prcomp或princomp.但是,当我这样做时,我收到以下错误消息:

Error in as.vector(data): no method for coercing this S4 class to a vector

示例代码:

files<-list.files() # a set of rasters
layers<-stack(files) # using the raster package
pca<-prcomp(layers)
Run Code Online (Sandbox Code Playgroud)

我曾尝试使用栅格砖而不是堆栈,但这似乎不是问题.我需要什么方法来提供命令,以便它可以将栅格数据转换为矢量格式?我知道有一些方法可以对栅格进行采样并从中运行PCA,但我真的很想了解为什么上述方法不起作用.

谢谢!

r raster pca

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

R在最大值和最小值处绘制y轴刻度线

我需要绘制相同两个变量的多个图,但y值的范围在图中不同.为了简化y轴,我希望每个图显示仅在y轴的最小和最大范围显示刻度线和标签(图的最小值/最大值,而不是数据).

我玩过usr和yaxp参数,但没有运气.这是一个玩具示例:

x<-1:10
y<-3:12
plot(x,y,yaxp=c(par("usr")[3],par("usr")[4],1))
Run Code Online (Sandbox Code Playgroud)

我希望沿y轴对应于图的顶部和底部的刻度线/标签(中间没有),但这并不会在y轴上放置任何刻度线或标签.任何人都可以解释为什么以及如何返回所需的结果?

谢谢!

plot r

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

Mac 上的 R RSelenium rsDriver chrome 浏览器错误

我使用的是 Mac(操作系统 10.13.6),并且正在尝试学习如何使用 RSelenium。

我已经安装了 RSelenium,但在使用 rsDriver 命令时遇到问题:

rD <- rsDriver(browser="chrome",chromever="80.0.3987.106")
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Could not open chrome browser.
Client error message:
Undefined error in httr call. httr output: Failed to connect to localhost port 4567: Connection refused
Check server log for further details.
Warning message:
In rsDriver(browser = "chrome", chromever = "80.0.3987.106") :
Could not determine server status.
Run Code Online (Sandbox Code Playgroud)

我已经花了几天时间寻求帮助,但不清楚这里的适当解决方案。我已尝试使用该命令并chromever="latest"遵循此处找到的建议解决方法:stackoverflow.com/questions/55201226/。此外,我不知道在哪里可以找到错误中提到的“服务器日志”。

以前从未使用过这个包,或者做过这种类型的事情,我无法判断我是否只是没有在我的机器上正确设置东西(我需要安装和安装位置的 RSelenium 的非 R 要求),或者这是否是严格意义上的 Chrome 浏览器设置/版本问题,或者通常是 Mac 兼容性问题。

有没有人有一套更新的(即不涉及失效checkForServer()命令)步骤(对于绝对的 Selenium 初学者)来设置 RSelenium 并在 mac 上运行 …

macos r rselenium

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

标签 统计

r ×4

dataframe ×1

lapply ×1

macos ×1

pca ×1

plot ×1

raster ×1

rselenium ×1