使用数据框在 R 中执行 getSunlightTimes 函数?
Executing getSunlightTimes function in R with data frame?
希望您能支持我使用getSunlightTimes 函数。我有一个像素级数据框 ("latlon2"),其中包含纬度 ("lat")、经度 ("lon") 和一个日期 ("date"),格式为 YYYY-MM-DD .数据涵盖了美国大陆,我在数据框中也有一个州代码变量。
为了获取 date
变量作为日期 class 变量,我执行了:
latlon2$date=as.Date(latlon2$d2003s)
我正在尝试使用 getSunlightTimes
来识别指定日期每个像素的日出和日落时间。但是,我很难使该功能正常工作。除了 R 的帮助指南之外,关于此命令的信息不多,所以我希望你们中的一些人已经使用过它,并且可以根据我目前的方法提供您的建议。
首先,我尝试使用 getSunlightTimes
函数指定数据框中的每个 latitude/longitude/date 列
sunrise2003CET=getSunlightTimes(date="latlon2$date", lat="latlon2$lat", lon="latlon2$lon", tz="CET", keep = c("sunrise", "sunset"))
R returns 错误:
Error in getSunlightTimes(date = "latlon2$date2", lat = "latlon2$lat",
: date must to be a Date object (class Date)
令人沮丧的是,当我查看 class(latlon2$date) R 验证该列是 "Date" class!
接下来,我尝试只指定数据框:
sunrise2003CET=getSunlightTimes(data="latlon2", tz="CET", keep = c("sunrise", "sunset"))
R returns 错误:
Error in .buildData(date = date, lat = lat, lon = lon, data = data) :
all(c("date", "lat", "lon") %in% colnames(data)) is not TRUE
这看起来很奇怪,因为我将数据框中的列命名为 "date"、"lat"、"lon",但错误可能是由于在数据框(如州代码)。
我正在尝试在 15 年(和四个时区)的几个日期执行此任务,因此关于如何获得此 运行 以及 运行 的任何建议都非常有用赞赏!
非常感谢!
科莱特
引号有问题。当你写
sunrise2003CET=getSunlightTimes(date="latlon2$date",
lat="latlon2$lat",
lon="latlon2$lon",
tz="CET",
keep = c("sunrise", "sunset"))
您不应将 date
、lat
和 lon
参数的表达式放在引号中,因为这样 R 会将它们视为字符串。 (你可以试试 class("latlon2$date")
看看这个。)就写成
sunrise2003CET=getSunlightTimes(date=latlon2$date,
lat=latlon2$lat,
lon=latlon2$lon,
tz="CET",
keep = c("sunrise", "sunset"))
希望您能支持我使用getSunlightTimes 函数。我有一个像素级数据框 ("latlon2"),其中包含纬度 ("lat")、经度 ("lon") 和一个日期 ("date"),格式为 YYYY-MM-DD .数据涵盖了美国大陆,我在数据框中也有一个州代码变量。
为了获取 date
变量作为日期 class 变量,我执行了:
latlon2$date=as.Date(latlon2$d2003s)
我正在尝试使用 getSunlightTimes
来识别指定日期每个像素的日出和日落时间。但是,我很难使该功能正常工作。除了 R 的帮助指南之外,关于此命令的信息不多,所以我希望你们中的一些人已经使用过它,并且可以根据我目前的方法提供您的建议。
首先,我尝试使用 getSunlightTimes
函数指定数据框中的每个 latitude/longitude/date 列
sunrise2003CET=getSunlightTimes(date="latlon2$date", lat="latlon2$lat", lon="latlon2$lon", tz="CET", keep = c("sunrise", "sunset"))
R returns 错误:
Error in getSunlightTimes(date = "latlon2$date2", lat = "latlon2$lat", : date must to be a Date object (class Date)
令人沮丧的是,当我查看 class(latlon2$date) R 验证该列是 "Date" class!
接下来,我尝试只指定数据框:
sunrise2003CET=getSunlightTimes(data="latlon2", tz="CET", keep = c("sunrise", "sunset"))
R returns 错误:
Error in .buildData(date = date, lat = lat, lon = lon, data = data) : all(c("date", "lat", "lon") %in% colnames(data)) is not TRUE
这看起来很奇怪,因为我将数据框中的列命名为 "date"、"lat"、"lon",但错误可能是由于在数据框(如州代码)。
我正在尝试在 15 年(和四个时区)的几个日期执行此任务,因此关于如何获得此 运行 以及 运行 的任何建议都非常有用赞赏!
非常感谢!
科莱特
引号有问题。当你写
sunrise2003CET=getSunlightTimes(date="latlon2$date",
lat="latlon2$lat",
lon="latlon2$lon",
tz="CET",
keep = c("sunrise", "sunset"))
您不应将 date
、lat
和 lon
参数的表达式放在引号中,因为这样 R 会将它们视为字符串。 (你可以试试 class("latlon2$date")
看看这个。)就写成
sunrise2003CET=getSunlightTimes(date=latlon2$date,
lat=latlon2$lat,
lon=latlon2$lon,
tz="CET",
keep = c("sunrise", "sunset"))