标签: rbind

R复制矩阵数次,然后按行绑定在一起

我有以下矩阵

FI1  FI2 YI1 YI2 BAL1 BAL2 GRO1 GRO2  EQ1  EQ2
1 0.22 0.15 0.1 0.1 0.05 0.05 0.05 0.05 0.05 0.05
2 0.22 0.00 0.0 0.0 0.00 0.00 0.00 0.00 0.00 0.00
3 0.22 0.00 0.0 0.0 0.00 0.00 0.00 0.00 0.00 0.00
4 0.22 0.00 0.0 0.0 0.00 0.00 0.00 0.00 0.00 0.00
5 0.22 0.00 0.0 0.0 0.00 0.00 0.00 0.00 0.00 0.00
6 0.22 0.00 0.0 0.0 0.00 0.00 0.00 0.00 0.00 0.00
Run Code Online (Sandbox Code Playgroud)

现在我希望将这个矩阵重复10次并放入一个矩阵,使它看起来像这样(我只在这里显示2次)

FI1  FI2 …
Run Code Online (Sandbox Code Playgroud)

data-binding r matrix rbind

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

rbind tbl和df给出了过滤器的错误

我正在使用dplyr和爱它,但发现了一种奇怪的行为.我正在清理来自不同来源的一些数据并将它们放在一个数据框中.部分需要更多清洁,完成dplyr并产生一个tbl物体.另一部分更简单,我有一个data.frame对象.我rbind他们在一起,当我做分析时,尝试使用dplyr过滤功能,它将无法正常工作.例:

df1 <- data.frame(
   group = factor(rep(c("C", "G"), 5)),
   value = 1:10)
df1 <- df1 %>% group_by(group) #df1 is now tbl
df2 <- data.frame(
   group = factor(rep("G", 10)),
   value = 11:20)
df3 <- rbind(df1, df2) #df2 is data.frame
df3 %>% filter(group == "C") #returns filtered rows in df1 and all rows of df2
Source: local data frame [15 x 2]
Groups: group

  group value
1      C     1
2 …
Run Code Online (Sandbox Code Playgroud)

r filter rbind dplyr

7
推荐指数
1
解决办法
492
查看次数

跨嵌套列表的rbind数据帧

我有一个了解各种不同的rbinding名单问题,比如这个,但我真的不能找到这样做的更有效的方法.

我有一个嵌套列表nestlist,其中包含三个列表,每个列表包含两个数据帧:

df1 <- data.frame(ID = paste0(LETTERS[1:4],1:4), valueA = seq(0.1,0.4,0.1), Category= "Apples")
df2 <- data.frame(ID = paste0(LETTERS[1:4],1:4), valueB = seq(0.1,0.4,0.1),  Category= "Apples")
list1 <- list(df1,df2)

df3 <- data.frame(ID = paste0(LETTERS[1:4],1:4), valueA = seq(0.1,0.4,0.1), Category= "Pears")
df4 <- data.frame(ID = paste0(LETTERS[1:4],1:4), valueB = seq(0.1,0.4,0.1),  Category= "Pears")
list2 <- list(df3,df4)

df5 <- data.frame(ID = paste0(LETTERS[1:4],1:4), valueA = seq(0.1,0.4,0.1), Category= "Stairs")
df6 <- data.frame(ID = paste0(LETTERS[1:4],1:4), valueB = seq(0.1,0.4,0.1),  Category= "Stairs")
list3 <- list(df5,df6)

nestedlist <- list(list1,list2,list3)
Run Code Online (Sandbox Code Playgroud)

我想找到一种更简单的方法,通过公共value …

nested r list rbind

7
推荐指数
2
解决办法
1121
查看次数

在R中的rbind命令之后创建一个标识原始data.frame的变量

我是R的新手,我想知道如何在使用rbind命令加入之前创建一个标识每个原始data.frames的变量(数字序列).

由于在原始数据框中有一个变量是行ID号,如果创建一个循环,每次遇到行ID中的数字1时在新变量中分配一个新数字,它应该有效......

谢谢.

loops r rbind

6
推荐指数
2
解决办法
1308
查看次数

R:将数据帧列表合并为单个数据帧,使用列表索引添加列

问题与这一问题非常相似.它用于将数据帧列表组合成单个较长的数据帧.但是,我希望通过添加包含列表索引(id或source)的额外列来保留数据来自列表项的信息.

这是数据(来自链接示例的借用代码):

dfList <- NULL
set.seed(1)
for (i in 1:3) {
     dfList[[i]] <- data.frame(a=sample(letters, 5, rep=T), b=rnorm(5), c=rnorm(5))
}
Run Code Online (Sandbox Code Playgroud)

使用下面的代码提供了连接数据框,但不添加列表索引的列:

df <- do.call("rbind", dfList)
Run Code Online (Sandbox Code Playgroud)

如何在创建列以捕获列表中的原点时连接列表中的数据框?类似于以下内容:

在此输入图像描述

非常感谢你提前.

r dataframe rbind do.call

6
推荐指数
1
解决办法
1975
查看次数

向量中的混合类型(没有类型转换的 rbind 数据框)

在 R 中,向量不能包含不同的类型。一切都必须例如是整数或一切都必须是字符等。这有时让我头疼。例如,当我想向 data.frame 添加边距,并且需要一些列是数字而其他列是字符时。

下面是一个可重现的示例:

# dummy data.frame
set.seed(42)
test <- data.frame("name"=sample(letters[1:4], 10, replace=TRUE),
                   "val1" = runif(10,2,5),
                   "val2"=rnorm(10,10,5),
                   "Status"=sample(c("In progres", "Done"), 10, replace=TRUE),
                   stringsAsFactors = FALSE)

# check that e.g. "val1" is indeed numeric
is.numeric(test$val1)
# TRUE
# create coloumn sums for my margin.
tmpSums <- colSums(test[,c(2:3)])
# Are the sums numeric?
is.numeric(tmpSums[1])
#TRUE
# So add the margin
test2 <- rbind(test, c("All", tmpSums, "Mixed"))
# is it numeric
is.numeric(test2$val1)
#FALSE
# DAMN. Because the vector `c("All", tmpSums, "Mixed")` …
Run Code Online (Sandbox Code Playgroud)

types r dataframe rbind

6
推荐指数
1
解决办法
2085
查看次数

R rbind数据框返回一个列表

我遇到了一个问题,并设法通过破解解决了该问题,我希望了解该问题,并希望摆脱该黑客攻击。

我试图重现问题无济于事,所以的话将要在这里就够了。

我正在尝试rbind在R中使用两个数据框,其结果必须再次是一个数据框,而不是list。我rbind在大多数脚本中都使用过,从来没有遇到过问题。

但是,今天我将rbind应用于两个数据帧,例如foobar并且返回list foobar。我用来解决此问题的技巧是强制转换foo再次转换bar为数据帧,如下所示:

rbind(data.frame(foo), data.frame(bar))

此作品,但我想知道为什么我必须把它明确地转换时都foobar已经data.frames。

那么我的问题是,当两个输入都是data.frames时,将在哪种“一般”情况下rbind返回a list

我尝试通过查看rbind(A,A)和调试它rbind(B,B)。两次都返回一个数据帧而不是一个list。为什么会rbind(A,B)返回一个list

谢谢!

r list dataframe rbind

6
推荐指数
1
解决办法
4090
查看次数

在相同的data.tables上执行bind_rows()和rbind()之后,same()= FALSE?

警告:新手.我有几个data.tables,每个数百万行,变量主要是日期和因素.我正在使用rbindlist()来组合它们,因为.昨天,在将表分成较小的块(而不是当前的水平拼接)之后,我试图更好地理解rbind(特别是使用fill = TRUE)并尝试了bind_rows()然后尝试验证结果但是相同( )返回FALSE.

library(data.table)
library(dplyr)
DT1 <- data.table(a=1, b=2)
DT2 <- data.table(a=4, b=3)
DT_bindrows <- bind_rows(DT1,DT2)
DT_rbind <- rbind(DT1,DT2)
identical(DT_bindrows,DT_rbind)
 # [1] FALSE
Run Code Online (Sandbox Code Playgroud)

目视检查bind_rows()和rbind()的结果表明它们确实相同.我读了这个这个(从我调整的例子).我的问题:(a)我错过了什么,以及(b)如果我的列的数量,名称和顺序是相同的,我是否应该关注相同的()= FALSE?

r rbind dplyr data.table

6
推荐指数
1
解决办法
256
查看次数

使 rbindlist 跳过、忽略或更改列的类属性

我想合并一大组数据框(大约 30 个),每个数据框有大约 200 个变量。这些数据集非常相似但不完全相同。

请在下面找到两个示例数据框:

library(data.table)
library(haven)
df1 <- fread(
    "A   B   C  iso   year   
     0   B   1  NLD   2009   
     1   A   2  NLD   2009   
     0   Y   3  AUS   2011   
     1   Q   4  AUS   2011   
     0   NA  7  NLD   2008   
     1   0   1  NLD   2008   
     0   1   3  AUS   2012",
  header = TRUE
)
df2 <- fread(
    "A   B   D  E  iso   year   
     0   1   1  NA ECU   2009   
     1   0   2  0  ECU   2009   
     0   0   3  0 …
Run Code Online (Sandbox Code Playgroud)

merge r class rbind rbindlist

6
推荐指数
1
解决办法
3761
查看次数

将行附加到 data.table 与在 data.frame 中的工作方式不同:如何以及为什么?

为什么下面的代码不起作用?

library(data.table)
team_table <- as.data.table(matrix(NA,ncol = 11))
rbind(team_table,1:11)
Run Code Online (Sandbox Code Playgroud)

而同版本的data.frame呢?

team_table <-as.data.frame(matrix(NA,ncol = 11))
rbind(team_table,1:11)
Run Code Online (Sandbox Code Playgroud)

r dataframe rbind data.table

6
推荐指数
1
解决办法
87
查看次数

标签 统计

r ×10

rbind ×10

dataframe ×4

data.table ×2

dplyr ×2

list ×2

class ×1

data-binding ×1

do.call ×1

filter ×1

loops ×1

matrix ×1

merge ×1

nested ×1

rbindlist ×1

types ×1