r - 如何在 R 中合并数据框中的行?
问题描述
我有一个非常大的数据框(7 个变量的 121920 obs)。所有变量都是因子。数据框看起来像这样(每个变量有更多的行和不同的级别):
元数据:
SITE SOIL TIME HOST TISSUE TEMP MEDIA
MSHM1 Sorkhe Gypsum Soil 2016-Winter Acantholimon sp. Leaf 23 PDA
MSHM2 Sorkhe Gypsum Soil 2016-Winter Acantholimon sp. Leaf 23 PDA
MSHM3 Sorkhe Gypsum Soil 2016-Winter Acantholimon sp. Leaf 23 PDA
MSHM4 Sorkhe Gypsum Soil 2016-Winter Acantholimon sp. Leaf 23 PDA
MSHM5 Sorkhe Gypsum Soil 2016-Winter Acantholimon sp. Leaf 23 PDA
MSHM6 Sorkhe Gypsum Soil 2016-Winter Acantholimon sp. Leaf 23 PDA
MSHM7 Sorkhe Gypsum Soil 2016-Winter Acantholimon sp. Leaf 23 PDA
MSHM8 Sorkhe Gypsum Soil 2016-Winter Acantholimon sp. Leaf 23 PDA
我想在新数据框中将每 4 行合并为 1 行。像这样的东西:
MSHM1 Sorkhe Gypsum Soil 2016-Winter Acantholimon sp. Leaf 23 PDA
MSHM4 Sorkhe Gypsum Soil 2016-Winter Acantholimon sp. Leaf 23 PDA
MSHM8 Sorkhe Gypsum Soil 2016-Winter Acantholimon sp. Leaf 23 PDA
MSHM12 Sorkhe Gypsum Soil 2016-Winter Acantholimon sp. Leaf 23 PDA
或者只保留每 4 行中的 1 行,因为它们具有相同级别的每个变量。
我试过了 :
S1<-seq(1,121920,4)
S2<-seq(4,121920,4)
D<-matrix(0,length(S1),7)
for (i in 1:length(S1)) {
D[i,1]<-noquote(paste(metaDATA[S1[i]:S2[i],1]))
D[i,2]<-noquote(paste(metaDATA[S1[i]:S2[i],2]))
D[i,3]<-noquote(paste(metaDATA[S1[i]:S2[i],3]))
D[i,4]<-noquote(paste(metaDATA[S1[i]:S2[i],4]))
D[i,5]<-noquote(paste(metaDATA[S1[i]:S2[i],5]))
D[i,6]<-noquote(paste(metaDATA[S1[i]:S2[i],6]))
D[i,7]<-noquote(paste(metaDATA[S1[i]:S2[i],7]))
}
但这不起作用,我收到了这个错误:
Error in D[i, 6] <- noquote(paste(metaDATA[S1[i]:S2[i], 6])) :
number of items to replace is not a multiple of replacement length
解决方案
假设您的日期已命名df
,请尝试
newdf <- df[ c(TRUE, rep(FALSE,3) ), ]
保留第一行,跳过 3,保留第五行,跳过 3,等等......
推荐阅读
- ruby - 如果通过 Window 的命令提示符或 Linux 的终端启动 Ruby "File.open" 将不起作用(无错误)
- mongodb - 复杂查询 mongoose - 嵌入式文档数组
- javascript - 使用Javascript循环遍历数组的对象
- javascript - Javascript Json:通过匹配json键对值求和
- c# - 将对象列表传递给控制器(C# MVC)
- netsuite - 如何在 NetSuite SuiteScript 中检查字段是否具有内容/值
- javascript - 使用 iframe 显示注入的内容
- javascript - 鼠标图标抓取\抓取不起作用(Chrome)
- if-statement - 摆脱 if 语句
- ruby - Ruby - 使用类和方法的简单 ToDo 列表程序遇到问题