r - 向 R 中的 data.table 添加其他行,其中仅包含某些列的值
问题描述
基本上,我有一个混合了日期、证监会、字符串和数字数据的 data.table,我想添加额外的行,其中只有三列有数据,我希望其余的为空。所以我问如何在使用 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)
推荐阅读
- javascript - 如何修复失败的 NextJS 导出 - 在本地工作正常,但在导出时失败,令人沮丧:(
- swift - Swift 程序永远不会为 dataTask 进入 CompletionHandler
- java - 如何从大双精度数中删除小数位并将它们打印为数字而不是 2.13837537957E14?
- shell - 为什么使用 cut 比 awk 从文件中的每一行截取两个字符串要慢得多?
- android - 有没有办法检查同一张表中同一个column_id的新值和旧值?
- javascript - g标签矩形形状到可塑形状和g标签内的文本以包装并在angular7中响应
- ios - 如何从 xib tableview Cell 推送 ViewController?
- python - 我们如何使用空的 csv 文件加载 pandas 数据框,以及如何检查我们选择用于加载数据框的 csv 文件是否为空?
- java - Android Update 3 后 Android 资源链接失败
- javascript - 无法映射 this.props(值作为未定义或空数组出现)