R通过添加行创建data.frame,每次一行
我正在尝试逐行(每次一条记录)填充data.frame(或类似的内容)。我的问题:R通过添加行创建data.frame,每次一行,r,dataframe,R,Dataframe,我正在尝试逐行(每次一条记录)填充data.frame(或类似的内容)。我的问题: 数据并不总是存在,我不想丢失列,因为它们没有一个数据实例。我想在这个地方设置NA 新的列可以出现在进程的中间,其他的列不再可用。 我要做的是用一行和插入向量构造一个data.frame 例如: ddf <- data.frame("1", "2", "3", "4", stringsAsFactors = FALSE) colnames(ddf) <- c("A","B","C","D") View(
ddf <- data.frame("1", "2", "3", "4", stringsAsFactors = FALSE)
colnames(ddf) <- c("A","B","C","D")
View(ddf)
data_vector1 <- c("11","22","44")
names(data_vector1) <- c("A","B","D")
data_vector2 <- c("111","222","555")
names(data_vector2) <- c("A","B","E")
#What I want:
# A B C D E
# 1 2 3 4 NA
# 11 22 NA 44 NA
# 111 222 NA NA 555
#Still now
samecols <- intersect(colnames(ddf),names(data_vector1))
ddf <- rbind(ddf, data_vector1[samecols])
#I'm getting:
#A B C D
#1 2 3 4
#11 22 44 11
ddf我们可以将数据集放在列表中,转换为data.frame
并使用rbindlist
和fill=TRUE
library(data.table)
lst <- lapply(list(ddf, data_vector1, data_vector2), as.data.frame.list)
rbindlist(lst, fill=TRUE)
# A B C D E
#1: 1 2 3 4 NA
#2: 11 22 NA 44 NA
#3: 111 222 NA NA 555
行是否相互依赖?不,来自akrum的答案正是我所期望的。正在尝试安装data.table。
library(dplyr)
bind_rows(lst)