如果某些数据帧缺少列,是否有方法在R中排序和垂直合并数据帧?
我正在处理一组包含大量缺失数据的.csv文件,希望了解两个关键变量“上游数据”和“下游数据”的可用性。我使用for循环遍历每个文件,并为每个文件添加了一列,以指示是否可以使用mapply和function使用上游和下游数据如果某些数据帧缺少列,是否有方法在R中排序和垂直合并数据帧?,r,R,我正在处理一组包含大量缺失数据的.csv文件,希望了解两个关键变量“上游数据”和“下游数据”的可用性。我使用for循环遍历每个文件,并为每个文件添加了一列,以指示是否可以使用mapply和function使用上游和下游数据 >NOXcolorcode <- function(x,y){ > if (is.na(x)){ > if (is.na(y)) { > colorcode <- "Neither&quo
>NOXcolorcode <- function(x,y){
> if (is.na(x)){
> if (is.na(y)) {
> colorcode <- "Neither"
> } else {
> colorcode <- "Upstream Only"
> }
> }else if (is.na(y)) {
> colorcode <- "Downstream Only"
> } else {
> colorcode <- "Both"
> }
> return(colorcode)
>}
>Dataframe$NOXavailable <- mapply(NOXcolorcode,NOXup, NOXdown)
有没有办法垂直绑定这些表?理想情况下,应采用这种格式:
Upstream Only Downstream Only Both Neither VIN
1 903 5426 135270 60744 LFNADMKJ6LAN07529
2 NA 2690 5425 22201 LFNADMJJXLAX43537
......
非常感谢 您可以使用
dplyr::bind_rows
来处理缺少的列并将其分配给NA
。如果您有数据帧表1
,表2
…表5
请尝试:
result <- dplyr::bind_rows(mget(paste0('table', 1:5)))
结果答案(基数R)
首先使nox可用
一个系数,具有固定水平:
NOXavailable <- factor(NOXavailable, levels = c("Upstream Only", "Downstream Only", "Both", "Neither"))
table(NOXavailable)
基本原理
系数强制表格
显示系数的所有级别,即使它们为空
旁注
似乎您正在为列的每个条目调用NOXcolorcode
。请注意,is.na
是矢量化的,因此从技术上讲,您可以一次对整个列调用它。您可能只想编写一个函数,在整个列上运行is.na
,然后分配所需的值。您使用了什么代码来获取表2
,表4
?在for循环中生成了一个表变量,使用table()来计算每个颜色代码的频率。之后,我添加了“VIN”列。我在那里命名了表1、表2等,只是为了方便回答这个问题表$VIN表2
result <- dplyr::bind_rows(mget(paste0('table', 1:5)))
NOXavailable <- factor(NOXavailable, levels = c("Upstream Only", "Downstream Only", "Both", "Neither"))
table(NOXavailable)
NOXavailable
Upstream Only Downstream Only Both Neither
0 47 53 0