小编maR*_*tin的帖子

R:交换两个变量而不使用第三个变量

我有两个变量(即):

   a <- 1
   b <- 2
Run Code Online (Sandbox Code Playgroud)

我想换掉他们的价值观.是否有内置的R功能,能够执行该操作?或者是否有其他优雅的方式,而不使用第三个(临时)变量?

注意:如果可能,则适用于字符串或其他数据类型.

r

9
推荐指数
3
解决办法
7782
查看次数

R:闪亮的dateRangeInput格式

我正在使用R的数据包闪亮,我在我的ui.R中实现了dateRangeInput:

   dateRangeInput("date", "Date range:",
                       start  = "2013-05-15",
                       end    = "2013-10-01",
                       min    = "2013-05-15",
                       max    = "2013-10-01",
                       format = "dd/mm/yy",
                       separator = " - ")
Run Code Online (Sandbox Code Playgroud)

如果我显示选定的最小值和最大值,我得到以下(奇怪的)输出:

最小日期值:

renderText({(input$date[1])})
Run Code Online (Sandbox Code Playgroud)

输出:

 15840
Run Code Online (Sandbox Code Playgroud)

最大日期值:

renderText({(input$date[2])})
Run Code Online (Sandbox Code Playgroud)

输出:

15979
Run Code Online (Sandbox Code Playgroud)

为什么我在输出中得到这些数字而不是从ui.R本身中选择的数据:2013-05-15和2013-10-01?我怎样才能将它转换成这样的格式?as.Date不起作用.

r date shiny

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

R 中的动态 SQL 查询 (WHERE)

我正在尝试使用 R 和 postgres 包连接到我的数据库的一些动态 SQL 查询。

不幸的是,如果执行以下语句,我会得到一个空数据框:

    x <- "Mean"
query1 <- dbGetQuery(con, statement = paste(
  "SELECT *",
  "FROM name",
  "WHERE statistic = '",x,"'"))
Run Code Online (Sandbox Code Playgroud)

我相信最后一行有语法错误。我已经以各种可能的方式更改了逗号和引号,但似乎没有任何效果。有谁知道如何使用 R 变量通过动态 WHERE 语句构造此 SQL 查询?

sql postgresql r dynamic-sql

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

计算网格中的物种出现次数

我在美国有大约500,000个R 迁徙鸟类的发生数据.

我试图在这些点上叠加网格,然后计算每个网格中出现的次数.计算完计数后,我想将它们引用到网格单元ID.

在R中,我使用该over()函数来获取范围映射中的点,这是一个shapefile.

#Read in occurrence data
data=read.csv("data.csv", header=TRUE)
coordinates(data)=c("LONGITUDE","LATITUDE")

#Get shapefile of the species' range map
range=readOGR(".",layer="data")

proj4string(data)=proj4string(range)

#Get points within the range map
inside.range=!is.na(over(data,as(range,"SpatialPolygons")))
Run Code Online (Sandbox Code Playgroud)

上面的工作正如我所希望的那样,但没有解决我当前的问题:如何处理类型的点SpatialPointsDataFrame,以及栅格的网格.您是否建议使用上面指出的相同方法对栅格网格进行多边形化?或者另一个过程会更有效率?

r r-raster

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

ImportError:没有名为gdal的模块

当我尝试从命令行使用“ .py”功能时,我的GDAL表现出奇怪的行为:

1.例如,当我运行时gdalinfo --version,我得到标准响应:

GDAL 1.11.3, released 2015/09/16
Run Code Online (Sandbox Code Playgroud)

2.同样,当我跑步时gdalwarp,我得到标准的响应,向我显示标志和所有内容。

3.问题: 但是,例如,当我使用扩展名为.py的gdal函数运行时gdal_polygonize.py,会得到以下信息:

Traceback <most recent call last>:
    File "C:\OSGeoW64\bin\gdal_polygonize.py", line 36, in <module>
    import gdal, ogr, osr
ImportError: No module named gdal
Run Code Online (Sandbox Code Playgroud)

我检查了Path变量,重新安装了python和gdal,但没有任何效果。当我gdal_polygonize.py从QGIS 运行该功能时,它就可以工作。我只是不能从命令行使用它。

python command-line gdal

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

获取距离矩阵单元格的标签

数据:

我有一个matrix名为mat的距离,具有以下标签和值:

>mat
           179        175        176        181        249
175 147.451648                                            
176 174.527392  28.849183                                 
181 187.166092  40.007553  16.310747                      
249 194.644103  49.268129  20.637011  17.118671           
336 190.182183  44.613076  16.023090  13.697248   5.613544
Run Code Online (Sandbox Code Playgroud)

问题:

我想为矩阵的最小值 (5.613544) 提取行和列标签。

预期的输出类似于:

[1] 336 249
Run Code Online (Sandbox Code Playgroud)

我尝试使用colnames(mat)andrownames(mat)但都返回NULL.

我知道该函数labels(mat)能够返回标签:

[1] "179" "175" "176" "181" "249" "336"
Run Code Online (Sandbox Code Playgroud)

但在这里我被卡住了,无法理解它。它可能很简单,提前抱歉问这个简单的问题。关于如何做到这一点的任何想法?

这里我的数据使用dput()

structure(c(147.451648169349, 174.527392333086, 187.166091923018, 
                194.644102830409, 190.182183344061, 28.849182654733, 40.007553207889, 
                49.2681293306533, 44.6130761331497, 16.3107466873124, 20.6370107209517, 
                16.0230895738958, 17.1186706020006, 13.6972482228087, 5.6135436361904
    ), Size = 6L, …
Run Code Online (Sandbox Code Playgroud)

r matrix

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

将信息打印到闪亮的服务器日志中

有没有办法将信息包含/打印到闪亮的服务器日志文件中?

我正在使用一个闪亮的应用程序,其中包含一个用户登录,如果我的应用程序崩溃,我想知道是什么用户导致了这次崩溃。

我试图将它包含在我的server.R

#PRINT FOR LOG FILE------------
cat(paste0("Username: ",userdata$name, "\n"))
cat(paste0("Datum: ",Sys.time(), "\n"))
Run Code Online (Sandbox Code Playgroud)

但它不起作用。有任何想法吗?

logging r shiny shiny-server

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

rasterOptions:chunksize和maxmemory之间的区别

我最近偶然发现了两个rasterOptions可以改善R:chunksize和R中光栅操作性能的可能性maxmemory.然而,我很困惑,区别在于什么.帮助页面说明:

  • chunksize: 处理(块中的块)基于磁盘的Raster*对象时在单个块中读/写的最大单元数.

  • maxmemory:读入内存的最大单元数.即,如果Raster*对象具有超过此数量的单元格,则canProcessInMemory将返回FALSE.

根据我的理解,它们都是相同的,至少我无法通过定义弄清楚它们之间的差异以及它们如何相互影响.即低chunksize结合高maxmemory值?

r raster r-raster

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

错误使用 ST_AsGeoJSON 和 PostGIS

当我尝试运行以下命令时:

SELECT ST_AsGeoJSON(the_geom)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

HINT: Could not choose a best candidate function. You might need to add explicit type casts.
Run Code Online (Sandbox Code Playgroud)

在备份我的数据库然后在本地托管的新数据库上恢复它后,我收到了此错误消息。有关如何解决此问题的任何建议?我浏览了网页,发现一个可能的解决方案是运行“postgis_upgrade_20_minor.sql 文件”。(https://groups.google.com/forum/#!topic/postgis-users/qrk4FD-k5H8)但我不知道那是什么以及在哪里可以找到这个文件(因为我对 SQL 和 PostGIS 很陌生)。

sql postgis

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

R:读取netCDF文件作为栅格

我正在尝试将netCDF文件作为光栅读入R。netCDF文件描述了海洋年平均温度与经度,纬度和深度的关系。我关心的是海洋表面(即netCDF文件中的第一级),它t_an是netCDF文件中变量的名称。因此,我使用以下代码:

MyRast <- raster("Temperature.nc", level = 1, varname = "t_an")
Run Code Online (Sandbox Code Playgroud)

这给了我以下警告:

Warning message:
In .getCRSfromGridMap4(atts) : cannot process these parts of the CRS: epsg_code=EPSG:4326
Run Code Online (Sandbox Code Playgroud)

如您所见,netCDF文件具有CRS EPSG 4326(或WGS 84),但是创建的栅格具有以下CRS:

+proj=longlat +lon_0=0 +a=6378137 +rf=298.257232666016
Run Code Online (Sandbox Code Playgroud)

有任何想法如何使用正确的CRS读取netCDF文件吗?

r raster netcdf r-raster

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