基本上,我有一个data.table,其中包含日期,sfc,字符串和数字数据,我想添加额外的行,其中只有三列具有数据,而我希望其余部分为空。所以我问在使用dt [x:y,A = c(...)]等交换值之前如何向我的data.table添加空行。或者还有更好的方法吗?
这是我的数据的示例:
#Required packages
require(data.table)
require(sf)
#Data
ID<-c(1:3)
lon<-c(-86.9655633, -85.8316318, -85.8316318)
lat<-c(34.5967589, 33.6598257, 33.6598257)
Country<-c("Malaysia", "Malayisia", "Singapore")
City<-c("Penang", "Malacca", "Singapore")
area_km2<-c(1048, 277, 728)
event_start<-as.Date(c("2000-01-31", "2000-09-21", "2001-03-17"))
event_end<-as.Date(c("2000-02-14", "2000-10-12", "2001-05-27"))
samp<-data.table(ID, lon, lat, Country, City, area_km2, event_start, event_end)
samp <- st_as_sf(samp, coords = c("lon", "lat"), na.fail=F)
我想要的基本上是添加更多包含国家,城市和地区的数据行,但将其他所有内容都留空
add_Country<-c("Indonesia", "Indonesia", "Myanmar")
add_City<-c("Solo", "Jakarta", "Yangon")
add_area_km2<-c(44, 662, 576)
add<-data.table(add_Country, add_City, add_area_km2)
到目前为止,这是我一直尝试直接附加值并尝试添加空行的方法
require(tibble)
samp %>% add_row(Country = as.vector(add$add_Country),
City = as.vector(add$add_City),
area_km2= as.vector(add$add_area_km2))
empty=matrix(c(rep.int(NA,length(samp))),nrow=nrow(add),ncol=length(samp))
colnames(empty) = colnames(samp)
rbind(samp, empty)
这是我的第一次发布,所以请让我知道如何变得更清晰。谢谢!
只是将两个data.table直接与rbindlist
函数绑定。
首先,您需要使用相同的列名构造添加的部分 samp
samp<-data.table(ID, lon, lat, Country, City, area_km2, event_start, event_end)
Country<-c("Indonesia", "Indonesia", "Myanmar")
City<-c("Solo", "Jakarta", "Yangon")
area_km2<-c(44, 662, 576)
add<-data.table(Country, City, area_km2)
然后将它们绑定在一起,注意该选项fill = TRUE
,
rbindlist(list(samp,add),fill = TRUE)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句