标签: rbind

R中的rbind()和bind_rows()之间的区别

在网络上,我发现它rbind()用于组合两个数据帧,同一个任务由bind_rows()功能执行.

那我不明白这两个函数有什么区别,哪个更有效?

r rbind

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

使用rbind将多个.csv文件加载到R中的单个数据帧中的功能有什么问题?

我编写了以下函数来组合300个.csv文件.我的目录名是"specdata".我已经完成了以下执行步骤,

x <- function(directory) {     
    dir <- directory    
    data_dir <- paste(getwd(),dir,sep = "/")    
    files  <- list.files(data_dir,pattern = '\\.csv')    
    tables <- lapply(paste(data_dir,files,sep = "/"), read.csv, header = TRUE)    
    pollutantmean <- do.call(rbind , tables)         
}

# Step 2: call the function
x("specdata")

# Step 3: inspect results
head(pollutantmean)

Error in head(pollutantmean) : object 'pollutantmean' not found
Run Code Online (Sandbox Code Playgroud)

我的错是什么?有人可以解释一下吗?

csv r rbind

15
推荐指数
3
解决办法
3万
查看次数

如何将组行附加到数据框中

我有这个df1:

A B C
1 2 3
5 7 9
Run Code Online (Sandbox Code Playgroud)

A B C列名称在哪里.

我有一个列的另一个df2:

A
1
2
3
4
Run Code Online (Sandbox Code Playgroud)

我想为df1的每一列附加df2,创建这个最终的数据帧:

A B C 
1 2 3
5 7 9
1 1 1
2 2 2
3 3 3
4 4 4
Run Code Online (Sandbox Code Playgroud)

有可能做到吗?

r append matrix dataframe rbind

15
推荐指数
8
解决办法
1050
查看次数

rbind两个data.frame保留行顺序和行名称

我有一个data.frame对象列表,我想将它们相互追加,即merge(..., all=T).但是,merge似乎删除了我需要保持原样的行名称.有任何想法吗?例:

x = data.frame(a=1:2, b=2:3, c=3:4, d=4:5, row.names=c("row_1", "another_row1"))
y = data.frame(a=c(10,20), b=c(20,30), c=c(30,40), row.names=c("row_2", "another_row2"))
> merge(x, y, all=T, sort=F)
     a  b  c  d
  1  1  2  3  4
  2  2  3  4  5
  3 10 20 30 NA
  4 20 30 40 NA
Run Code Online (Sandbox Code Playgroud)

merge r dataframe rbind

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

在数据框中的特定位置添加新行

继承我的数据:

 > data
  Manufacturers       Models
1   Audi                RS5  
2   BMW                 M3  
3   Cadillac            CTS-V  
4   Lexus               ISF
Run Code Online (Sandbox Code Playgroud)

我想在第四行添加1行,如下所示:

 > data
  Manufacturers       Models
1   Audi                RS5  
2   BMW                 M3  
3   Cadillac            CTS-V  
4   Benz                C63
5   Lexus               ISF
Run Code Online (Sandbox Code Playgroud)

我试过像这样使用rbind():

 Benz = data.frame(Manufacturers = "Benz", Models = "C63")
 newdata = rbind(data,Benz)
Run Code Online (Sandbox Code Playgroud)

但我无法添加到我想要的地方.我很感激这个问题的任何帮助.非常感谢.

row r add rbind

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

在do.call中使用rbind时如何避免重命名行?

我试图绑定列表中的元素的一些子元素

清单OC如下

> library(quantmod)
> OC <- getOptionChain('AAPL', NULL)

> str(OC)
List of 9
 $ Feb 2013:List of 3
  ..$ calls :'data.frame':  35 obs. of  7 variables:
  .. ..$ Strike: num [1:35] 380 390 400 410 420 430 440 445 450 455 ...
  .. ..$ Last  : num [1:35] 89.9 86 60 49.5 39.8 ...
  .. ..$ Chg   : num [1:35] 0 0 -0.4 -4.4 -0.7 -1.9 -0.55 -0.7 -0.95 -1 ...
  .. ..$ Bid   : num [1:35] …
Run Code Online (Sandbox Code Playgroud)

r rbind do.call

9
推荐指数
1
解决办法
2651
查看次数

为什么R在将NA值添加到具有因子的数据框时更改变量类型?

当使用带有值rbind的两个时,我对R强制变量类型的方式有疑问.我举例说明:data.framesNA

x<-factor(sample(1:3,10,T))
y<-rnorm(10)
dat<-data.frame(x,y)
NAs<-data.frame(matrix(NA,ncol=ncol(dat),nrow=nrow(dat)))
colnames(NAs)<-colnames(dat)
Run Code Online (Sandbox Code Playgroud)

现在的目标是追加dat,并NAs同时保持变量类型factornumericxy.当我给:

dat_forward<-rbind(dat,NAs)
is.factor(dat_forward$x)
Run Code Online (Sandbox Code Playgroud)

这很好用.但是后向使用rbind失败:

dat_backward<-rbind(NAs,dat)
is.factor(dat_backward$x)
is.character(dat_backward$x)
Run Code Online (Sandbox Code Playgroud)

现在x被强迫角色等级.我很困惑 - 即使我使用其他绑定顺序,也不能保留因子类型?为实现目标,我的代码会有什么直接的变化?

r dataframe rbind na r-factor

9
推荐指数
1
解决办法
2544
查看次数

R rbind错误row.names不允许重复

这里还有其他问题可以解决同一个问题,但我没有意识到如何在此基础上解决我的问题.所以,我有5个数据帧,我想使用rbind合并一个唯一数据框中的行,但它返回错误:

"错误row.names<-.data.frame(*tmp*,值=值):'row.names'重复不允许另外:警告消息:设置'row.names'时的非唯一值:'1','10','100','1000 ','10000','100000','1000000','1000001 [....]"

数据框具有相同的列但行数不同.我认为rbind命令将第一列作为row.names.因此尝试在五个数据框中放置一个顺序ID,但它不起作用.我试图通过row.names()在数据框中指定顺序行名,但也没有成功.合并命令不是我认为的选项,因为5个数据帧和连续的合并将覆盖先例.我只使用id创建了一个新数据框并试图加入,但结果数据框不会附加连接df的列.

关注df 1的摘录:

  id    image     power     value pol class
1  1 tsx_sm_hh 0.1834515 -7.364787  hh    FR
2  2 tsx_sm_hh 0.1834515 -7.364787  hh    FR
3  3 tsx_sm_hh 0.1991938 -7.007242  hh    FR
4  4 tsx_sm_hh 0.1991938 -7.007242  hh    FR
5  5 tsx_sm_hh 0.2079365 -6.820693  hh    FR
6  6 tsx_sm_hh 0.2079365 -6.820693  hh    FR
[...]
1802124 1802124 tsx_sm_hh 0.1991938 -7.007242  hh    FR  
Run Code Online (Sandbox Code Playgroud)

另外四个df是相同的结构,除了'id'列之外没有重复的数字.'pol'和'image'列定义为级别.并all.pol <- rbind(df1,df2,df3,df4,df5)返回row.names重复的此错误.

任何的想法?

提前致谢

r no-duplicates rbind

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

在R中绑定两个向量

我有一个data.frame有几列,我想加入一个新的data.frame中的一列.

df1 <- data.frame(col1 = 1:3, col2 = 4:6, col3 = 7:9)
Run Code Online (Sandbox Code Playgroud)

如何使用1:9的单列创建新的data.frame?

r vector rbind

9
推荐指数
5
解决办法
3189
查看次数

如何在工作环境中处理所有data.frames?

我有超过50 data.frames在我的工作环境,我想rbind.有没有一种方法来rbinddata.frames与不必键入出每个出date.frame

我一直在做的例子:

df <- rbind(A, B, C, D, E, F)
Run Code Online (Sandbox Code Playgroud)

我试过了:

df <- rbind(ls())
Run Code Online (Sandbox Code Playgroud)

但这只是创建了我工作环境中所有data.frames的名称列表.

r dataframe rbind

9
推荐指数
1
解决办法
3864
查看次数

标签 统计

r ×10

rbind ×10

dataframe ×4

add ×1

append ×1

csv ×1

do.call ×1

matrix ×1

merge ×1

na ×1

no-duplicates ×1

r-factor ×1

row ×1

vector ×1