r - R不必要地将字符转换为日期而不是数字
问题描述
我将争论从 shell 脚本传递到 R 脚本和 R。
library(rLandsat) #used later in the script
args<-commandArgs(trailingOnly=TRUE)
max_date = Sys.Date()-as.numeric(args[1])
min_date = Sys.Date()-(as.numeric(args[1])+as.numeric(args[2]))
path<-as.numeric(as.character(args[4]))
row<-as.numeric(as.character(args[5]))
cloud<-as.numeric(as.character(args[6]))
foldername<-as.character(args[7])
for(i in args){
print(typeof(i))
}
print(args)
print(c(max_date,min_date,path,row,cloud,foldername))
for(i in c(max_date,min_date,path,row,cloud,foldername)){
print(typeof(i))
}
并且 R 出于某种原因将参数转换为某种类型的仍然是字符的日期。这是脚本的输出。args[3]
稍后使用,但我可能也应该检查一下。我知道 thearg
已经是一个字符,但它只返回了相同的值as.numeric()
forpath row
和cloud
。前两个参数正确返回,"2016-12-31" "2016-01-01"
但其他我希望与返回的原始参数具有相同的值。将签出list()
而不是c()
[1] "character"
[1] "character"
[1] "character"
[1] "character"
[1] "character"
[1] "character"
[1] "1048" "365" "Yellowstone" "38" "29"
[6] "20" "2016"
[1] "2016-12-31" "2016-01-01" "1970-02-08" "1970-01-30" "1970-01-21"
[6] "1975-07-10"
[1] "character"
[1] "character"
[1] "character"
[1] "character"
[1] "character"
[1] "character"
解决方案
c()
导致错误。见 MichaelChirico 的评论
推荐阅读
- python - Pandas DataFrame 按列值组合行,其中 Date Rows 为 NULL
- c# - 如何使用加速度计 xamarin 检查设备是否在最后 1 分钟内移动
- latex - Stata:esttab 十进制逗号
- javascript - 为什么请求没有被传递并根据请求刷新到 axios
- javascript - 我正在编写一个不和谐的机器人,但是当我使用 ping 命令时,它会显示 0 毫秒。我应该怎么办?
- javascript - Bootstrap 5 Webpack 插件功能不全
- kotlin - 如何在 Gradle KTS 中处理 Kotlin 代码?
- firebase - 在颤动中发送电话身份验证
- python - keras 神经网络中的这个错误是什么意思?
- c - 如何在 C 中进行正确的二进制搜索