首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用循环法将质谱数据分组

用循环法将质谱数据分组
EN

Stack Overflow用户
提问于 2022-07-06 07:44:50
回答 1查看 55关注 0票数 0

我想使每3列在不同的组在数据框架中分组。我已经附上了示例数据帧图像。它有12列。

示例数据帧

根据模式,我必须对列进行分组。对于6列数据帧,用户可以给出(0,0,0,1,1,1)的模式,并按以下方式分割数据帧。

代码语言:javascript
复制
data = as.matrix(input_data)
  
    id0 = which(class == 0)
    id1 = which(class == 1)
  
    data0 <- data[,id0]
    data1 <- data[,id1]

通过这种方式,我也可以做12列数据帧。

但是数据框架不是固定的。这是一个质谱表达数据集。它可能有任意数量的列,但它们都是一式三份的数据,这意味着它们可以除以3。

代码语言:javascript
复制
class = c(0,0,0,1,1,1)
length(class)
x <- length(class)/3 
x

上面的代码我已经尝试找出所需的组数。

因此,请为此问题提供任何循环操作。因为数据可能对每个实验都有影响。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-06 10:38:19

让我们用虚拟数据编写这个脚本

代码语言:javascript
复制
df<-data.frame(rep(data.frame(n1=c(0:6),n2=c(0:6)),3))

stack_scipt1<-function(df,replicate_value){   #df= dataframe, replicate value= no, of replicates input by user
df<-read.csv(file.choose(),header = TRUE)       #loads csv file into R as dataframe from pc folder where it is stored
df_col<-ncol(df)                                #calculates no. of columns in dataframe
groups<-sort(rep(0:((df_col/replicate_value)-1),replicate_value)) #creates user determined groups
id<-list()                                      #creates empty list
for (i in 1:length(unique(groups))){
id[[i]]<-which(groups == unique(groups)[i])}  #creates list of groups
names(id)<-paste0("id",unique(groups))          #assigns group based names to the list "id"
data<-list()                                    #creates empty list
for (i in 1:length(id)){
data[[i]]<-df[,id[[i]]]}                      #creates list of dataframe columns sorted by groups
names(data)<-paste0("data",unique(groups))      #assigns group based names to the list "data"
return(data)}

执行脚本:

代码语言:javascript
复制
>stack_script1(df,3)

注意:

  1. 这个脚本将适用于任何列号的数据格式,只要列号是复制值
  2. 的倍数,如果您之前已经将数据导入R,则行df<-read.csv(file.choose(),header = TRUE)并不是必需的。我更喜欢使用它,因为它允许我从保存文件夹导入数据,而不需要导入它,additionally
  3. The输出是一个包含分组数据帧的列表。不可能从脚本

返回多个数据帧向量

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72879652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档