标签: rbind

列出内存中的 data.tables 并按行组合(rbind)

我在内存中有许多 data.tables,其名称遵循特定的模式(例如:RE_1、RE_2...CO_1、CO_2...)。我想有效地绑定它们以获得两个 data.tables(RE 和 CO)。

我试过:

RE <- rbindlist(ls(pattern = "RE"))
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:“rbindlist(ls(pattern = "RE")) 中的错误:rbindlist 的输入必须是 data.tables 列表”。

有没有办法制作这样一个“可用”的 data.tables (或数据框)列表?

r dataframe rbind data.table

3
推荐指数
1
解决办法
666
查看次数

逐行交替组合矩阵

给定两个矩阵:

test1 <- matrix(1:5,ncol=1)

test2 <- matrix(6:10,ncol=1)
Run Code Online (Sandbox Code Playgroud)

我想以交替的方式将它们逐行组合成一个矩阵,这意味着:

expected_output <- matrix(c(1,6,2,7,3,8,4,9,5,10),ncol=1)
Run Code Online (Sandbox Code Playgroud)

或更直观:

在此输入图像描述

我已经创建了一个空矩阵,其长度是 test1 的两倍,但我缺少如何逐行添加每个值。rbind()只是将整个矩阵相加。

r matrix rbind

3
推荐指数
1
解决办法
206
查看次数

R - 对具有相似名称的多个变量使用rbind

我有很多变量,我使用这样的代码创建:

for (i in 1:10) {
    assign(paste0("variable", i), i )}
Run Code Online (Sandbox Code Playgroud)

我现在需要在变量上使用rbind来组合它们.我尝试过这样的事情无济于事:

rbind(assign(paste0("variable", 1:10)))
Run Code Online (Sandbox Code Playgroud)

有关该怎么办的任何建议?

r rbind

2
推荐指数
1
解决办法
4104
查看次数

有没有办法使用变量而不需要定义它(在R中)?

我使用以下代码:

tempdata <- rbind(tempdata,newdata)  # bind rowwise
Run Code Online (Sandbox Code Playgroud)

据我所知,需要定义tempdata(像所有对象,变量......).因为只有数值,我将其定义为tempdata<-0.这不是一个非常大的问题,但是在之后使用rbind时,第一行0保留在第一位,我必须使用某种

tempdata<-tempdata[-1,] # deletes first row
Run Code Online (Sandbox Code Playgroud)

我无法将其定义为tempdata<-'',因为这将是一个角色,对吧?

好吧,正如我所说,对我来说不是一个问题,但是会有更好的方法,特别是如果我或某人会rbind()在代码中多次使用,因此第一行可能不仅要"清除"一次......

使用时可能会出现同样的问题cbind().

也许有人知道更好的解决方案?

variables r rbind cbind

2
推荐指数
1
解决办法
55
查看次数

Mass rbind.fill用于许多数据框架

我试图将许多数据帧绑定到一个大型数据帧.数据帧按顺序命名df1,第一个命名,第二个命名df2,第三个命名df3等.目前,我已经通过显式键入数据帧的名称将这些数据帧绑定在一起; 然而,对于非常大量的数据帧(预期总共大约10,000个数据帧),这是次优的.

这是一个工作示例:

# Load required packages
library(plyr)

# Generate 100 example data frames
for(i in 1:100){
   assign(paste0('df', i), data.frame(x = rep(1:100),
                                      y = seq(from = 1,
                                              to = 1000,
                                              length = 100)))
  }
}

# Create a master merged data frame
 df <- rbind.fill(df1, df2, df3, df4, df5, df6, df7, df8, df9, df10,
             df11, df12, df13, df14, df15, df16, df17, df18, df19, df20,
             df21, df22, df23, df24, df25, df26, df27, df28, df29, df30, …
Run Code Online (Sandbox Code Playgroud)

merge for-loop row r rbind

2
推荐指数
1
解决办法
1594
查看次数

可变行大小的Rbind不给NA

初始数据框mergedDf

  PROD_CODE
  1 PRD0900033,PRD0900135,PRD0900220,PRD0900709
  2                       PRD0900097,PRD0900550
  3                                  PRD0900121
  4                                  PRD0900353
  5                       PRD0900547,PRD0900614
Run Code Online (Sandbox Code Playgroud)

打电话后

mergedDf<-data.frame(do.call('rbind', strsplit(as.character(mergedDf$PROD_CODE),',',fixed=TRUE)))
Run Code Online (Sandbox Code Playgroud)

输出变为

 X1         X2         X3         X4
1 PRD0900033 PRD0900135 PRD0900220 PRD0900709
2 PRD0900097 PRD0900550 PRD0900097 PRD0900550
3 PRD0900121 PRD0900121 PRD0900121 PRD0900121
4 PRD0900353 PRD0900353 PRD0900353 PRD0900353
5 PRD0900547 PRD0900614 PRD0900547 PRD0900614
Run Code Online (Sandbox Code Playgroud)

似乎多余的行正在重新填充.

我尝试使用bind_rows(),rbind_all()但这些需要将拆分的更改为data.frame,这是我无法做到的.我也尝试使用rbindlist()哪个也需要data.frame作为参数.

我需要输出.这些职位并不重要.

  X1         X2         X3         X4
1 PRD0900033 PRD0900135 PRD0900220 PRD0900709
2 PRD0900097 PRD0900550 NA         NA
3 PRD0900121 NA         NA         NA
4 PRD0900353 NA         NA         NA …
Run Code Online (Sandbox Code Playgroud)

r rbind

2
推荐指数
1
解决办法
68
查看次数

尝试将R上的2个data.frame与rbind合并,并在match.names(clabs,names(xi))中得到错误:名称与先前的名称不匹配

尝试将R上的2个data.frame与rbind合并

data.combined <- rbind(train, test.survived)

在match.names(clabs,names(xi))中出错:名称与先前的名称不匹配

r rbind

2
推荐指数
1
解决办法
8067
查看次数

如何在 R 中组合两个不同长度的数据帧?

我有两个数据框,如下所示:

第一年

在此处输入图片说明

我想得到这样的东西:

在此处输入图片说明

以下是可重复性的数据框:

df1 <- data.frame(descripcion_cuenta_N2 = c("Consumos", "Costes Personal", "Fungible Equipamiento", "Servicios"), anualidad = rep(2014, 4), valor = c(10, 11, 12, 13))
df2 <- data.frame(descripcion_cuenta_N2 = c("Consumos", "Costes Personal", "Fungible Equipamiento","Prestaciones", "Servicios"), anualidad = rep(2014, 5), valor = c(11, 20, 8, 9))
Run Code Online (Sandbox Code Playgroud)

A dataframe in which missed positions are filled with 0, because in some cases I am not getting data frames with the same amount of rows, and in those cases rbind fails, and I get an …

r dataframe rbind

2
推荐指数
1
解决办法
1万
查看次数

通过匹配日期合并不同长度的数据帧

我有两个不同长度的数据帧(n=3012 和 3008),我需要根据日期进行合并。我曾尝试使用合并和 rbindfill 函数,但没有成功。两个数据帧之间的公共线程是 date_time 但是两个 df2 都没有与 df1 相同的值。

df1

ID date_time Q_cfs Data_Code
68 2016-11-01 00:00:00   353         P
69 2016-11-01 00:15:00   356         P
70 2016-11-01 00:30:00   357         P
71 2016-11-01 00:45:00   356         P
72 2016-11-01 01:00:00   358         P
73 2016-11-01 01:15:00   355         P
Run Code Online (Sandbox Code Playgroud)

df2

ID  stage           date_time
1  4.82 2016-11-01 00:00:00
2  4.83 2016-11-01 00:15:00
3  4.84 2016-11-01 00:30:00
4  4.85 2016-11-01 00:45:00
5  4.86 2016-11-01 01:00:00
6  4.87 2016-11-01 01:15:00
Run Code Online (Sandbox Code Playgroud)

我尝试使用合并(如下)但它不起作用,因为列长度不同。

DF_New<- merge(df1,df2, by.x = df1$date_time, …
Run Code Online (Sandbox Code Playgroud)

merge r time-series rbind

2
推荐指数
1
解决办法
6587
查看次数

为什么rbind()不在for循环中工作?

我有一系列日期:

date_rng <- seq( as.Date("2008-01-01"), as.Date("2008-12-31"), by="+1 day")
Run Code Online (Sandbox Code Playgroud)

我有一些辅助功能,这些功能必然与问题相关,我会尝试将它们排除在外.

我从第一个日期开始并调用此函数:

# Function for getting weather table by airport code and date and return dataframe
get_table <- function(code, date){
  adv <- sprintf(
    "https://www.wunderground.com/history/airport/K%s/2008/%s/%s/DailyHistory.html", 
    code, month(date), day(date)
  )
  h <- adv %>% read_html()
  t <- h%>% 
  html_nodes(xpath = '//*[@id="obsTable"]') %>%
  html_table()
  df <- data.frame(t)
  return(df)
}
atl_weather <- get_table("ATL", date_rng[1])
Run Code Online (Sandbox Code Playgroud)

现在我迭代剩下的日期为每个日期创建一个新的df然后我尝试附加到原始日期:

# Loop through remaining dates and bind dfs
for(d in as.list(date_rng[2:4])){
  rbind(atl_weather, get_table("ATL", d), d)
}
Run Code Online (Sandbox Code Playgroud)

但绑定不会发生,我留下了在for循环之前创建的范围中第一个日期的原始数据帧.

这有效:

atl_weather <- get_table("ATL", …
Run Code Online (Sandbox Code Playgroud)

loops r rbind

2
推荐指数
1
解决办法
1466
查看次数

标签 统计

r ×10

rbind ×10

dataframe ×2

merge ×2

cbind ×1

data.table ×1

for-loop ×1

loops ×1

matrix ×1

row ×1

time-series ×1

variables ×1