我有表示时间偏移的字符串,有+和-符号,例如:
string1 <- c("+00:30", "-07:00")
如何将这些as.difftime格式转换为格式?我知道如果没有迹象,我本来可以写as.difftime(string1, format = "%H:%M"),它会起作用.但是,我不知道如何处理这些迹象.我想使用结果difftime将UTC时间转换为LST.
我提前感谢您的时间和帮助.
我试图用 grep 命令匹配表达式的开头和结尾,但我无法做到这一点。例如,考虑以下表达式。
filenames <- c("S2abc.6h", "S2abc.4h", "S2abc.0h","S4abc.6h","S2xyz.6h")
Run Code Online (Sandbox Code Playgroud)
我想查找以 S2 开头并以 6h 结尾的所有文件。我可以使用以下命令选择以 S2 开头的文件:
grep("S2", filenames, value = TRUE)
Run Code Online (Sandbox Code Playgroud)
但我无法在 grep 中使用通配符。
> grep("S2*6h", filenames, value = TRUE)
character(0)
Run Code Online (Sandbox Code Playgroud) 我有一个非常大的问题,并通过data.table循环来做我想要的太慢,所以我试图绕过循环.假设我有一个data.table如下:
a <- data.table(i = c(1,2,3), j = c(2,2,6), k = list(c("a","b"),c("a","c"),c("b")))
> a
i j k
1: 1 2 a,b
2: 2 2 a,c
3: 3 6 b
Run Code Online (Sandbox Code Playgroud)
我想根据k中的值进行分组.所以像这样:
a[, sum(j), by = k]
Run Code Online (Sandbox Code Playgroud)
现在我收到以下错误:
Error in `[.data.table`(a, , sum(i), by = k) :
The items in the 'by' or 'keyby' list are length (2,2,1). Each must be same length as rows in x or number of rows returned by i (3).
Run Code Online (Sandbox Code Playgroud)
我正在寻找的答案是首先将列k中具有"a"的所有行分组,然后计算sum(j),然后计算所有具有"b"的行,依此类推.所以答案是:
k V1
a 4
b 8 …Run Code Online (Sandbox Code Playgroud) 我正在尝试从ggmap设置一个地图.我从另一个脚本借用了这一行,但它不适用于我.我想指定地图的边界.
myLocation <- c( -133.50734, 26.07781, -60.49268, 47.77387)
myMap <- ggmap::get_map(location=myLocation, source="stamen", maptype="terrain", crop=TRUE)
Run Code Online (Sandbox Code Playgroud)
地图应显示美国边界,但在尝试运行时会抛出以下错误:
Map from URL : http://tile.stamen.com/terrain/5/4/11.jpg
Error in readJPEG(tmp) :
JPEG decompression error: Not a JPEG file: starts with 0x89 0x50
Run Code Online (Sandbox Code Playgroud)
有关如何解决问题的任何评论?
我想将UTC时间转换为本地标准时间.我发现很多功能转换为Local Daylight Time,但我没有成功获得标准时间.现在,我有以下代码转换为我特定时区的本地日光时间:
pb.date <- as.POSIXct(date,tz="UTC")
format(pb.date, tz="timeZone",usetz=TRUE)
Run Code Online (Sandbox Code Playgroud)
我将不胜感激任何帮助.
我想使用:= data from data.table而不加载data.table.例如,对于以下data.table,我想添加另一个名为的列error:
DT <- data.table::data.table(station = rep(1:1,52560), mod = rnorm(1*52560),obs = rnorm(1*52560))
Run Code Online (Sandbox Code Playgroud)
如果我做了以下一切顺利,但是,我很困惑它是如何工作而不引用包data.table(没有加载data.table库)?!!
DT[ , `:=`(error = mod - obs)]
Run Code Online (Sandbox Code Playgroud)
如何使用data.table ::: :=?重写上面的行?
我有一个两个嵌套的循环,我想用 lapply 而不是 for 循环来做它。我编写了以下简单示例:
a<-as.list(c(1,2))
b<-as.list(c(6,7))
results<-lapply(a, function(x) lapply(b, function(y) x+y))
> results
[[1]]
[[1]][[1]]
[1] 7
[[1]][[2]]
[1] 8
[[2]]
[[2]][[1]]
[1] 8
[[2]][[2]]
[1] 9
Run Code Online (Sandbox Code Playgroud)
如何为该列表分配名称,我可以使用名称(结果)<-a 将名称分配给第一级,但我不知道如何为第二级分配名称。并且命名应该在循环中完成,因为在我的主程序中 b 的长度可能会改变。如果有人能给我一些提示,我将不胜感激。
我正在尝试将没有父目录的目录压缩为tar,到目前为止,我已经找到了一种解决方案,该解决方案使用以下命令将父目录删除,并将目录(DIR)下的所有文件压缩为DIR.tar.gz文件:
tar -cvzf $DIR.tar.gz -C $path/$DIR .
Run Code Online (Sandbox Code Playgroud)
但是,如果我想解压缩被解压缩的文件,它将解压缩当前目录中的所有文件,但是,我希望能够以某种方式对目录进行解压缩,当我使用tar -xzvf时,它将解压缩到名为的文件夹中DIR。IT应该很简单,但是我无法在网上找到解决方案。有什么提示吗?
我有一个想要扩展的 shapefile(基本上是添加一些 NA 行和列)。有没有这样的功能raster::extend?不幸的是,这只适用于raster对象。
我可以使用 裁剪它raster::crop,它有一个 方法SpatialPolygonsDataFrame,但我找不到任何可以扩展的东西。
我知道如何使用IF和ENDIF在Fortran中使用,但在我从其他人那里得到的许多代码中,有一个#标志,这是IF什么意思?
!USES:
#if ( defined X )
use Y
#endif
Run Code Online (Sandbox Code Playgroud)