整理R中的数据-我应该使用循环吗?

整理R中的数据-我应该使用循环吗?,r,R,我在R中有一个非结构化的数据框,即应分组为四列的数据分布在整个数据框中: 当我应用下面的代码时,我将转置数据,然后使用子集将所有值组合在一起,然后再次转置。结果如下所示: 不过,我相信有一种更有效的方法可以通过循环机制实现这一点 任何建议,我可以采取措施,以改善以下感谢。理想情况下,我可以使用一个循环来整理包含在特定数据帧中的所有列 tmydata=t(mydata) df=data.frame(tmydata) firstrow=subset(df, X1!="NA") thefirst

我在R中有一个非结构化的数据框,即应分组为四列的数据分布在整个数据框中:

当我应用下面的代码时,我将转置数据,然后使用子集将所有值组合在一起,然后再次转置。结果如下所示:

不过,我相信有一种更有效的方法可以通过循环机制实现这一点

任何建议,我可以采取措施,以改善以下感谢。理想情况下,我可以使用一个循环来整理包含在特定数据帧中的所有列

tmydata=t(mydata)
df=data.frame(tmydata)

firstrow=subset(df, X1!="NA")
thefirstrow=firstrow[1]

secondrow=subset(df, X2!="NA")
thesecondrow=secondrow[2]

thirdrow=subset(df, X3!="NA")
thethirdrow=thirdrow[3]

fourthrow=subset(df, X4!="NA")
thefourthrow=fourthrow[4]

df2=data.frame(thefirstrow,thesecondrow,thethirdrow,thefourthrow)
finaloutput=t(df2)
finaldata=data.frame(finaloutput)
finaldata
col_headings <- c("A","B","C","D")
finaldata
names(finaldata) <- col_headings
tmydata=t(mydata)
df=数据帧(tmydata)
第一行=子集(df,X1!=“NA”)
第一行=第一行[1]
第二行=子集(df,X2!=“NA”)
第二行=第二行[2]
thirdrow=子集(df,X3!=“NA”)
第三方=第三方[3]
四掷=子集(df,X4!=“NA”)
四投=四投[4]
df2=data.frame(第一行、第二行、第三行、第四行)
最终输出=t(df2)
finaldata=data.frame(finaloutput)
数据恢复

col_headers我认为以下内容符合您的要求:

一些样本数据:

set.seed(1234)
df = matrix(runif(32),4,8)
colnames(df) = LETTERS[1:8]
df[df<0.2]=NA
输入:

             A         B         C         D         E         F         G         H
[1,]        NA 0.8609154 0.6660838 0.2827336 0.2862233 0.3166125 0.2187995 0.8313450
[2,] 0.6222994 0.6403106 0.5142511 0.9234335 0.2668208 0.3026934 0.8105986        NA
[3,] 0.6092747        NA 0.6935913 0.2923158        NA        NA 0.5256975 0.4560915
[4,] 0.6233794 0.2325505 0.5449748 0.8372956 0.2322259        NA 0.9146582 0.2651867
输出:

          A         B         C         D         E         F         G
1 0.8609154 0.6660838 0.2827336 0.2862233 0.3166125 0.2187995 0.8313450
2 0.6222994 0.6403106 0.5142511 0.9234335 0.2668208 0.3026934 0.8105986
3 0.6092747 0.6935913 0.2923158 0.5256975 0.4560915        NA        NA
4 0.6233794 0.2325505 0.5449748 0.8372956 0.2322259 0.9146582 0.2651867

我认为以下内容符合您的要求:

一些样本数据:

set.seed(1234)
df = matrix(runif(32),4,8)
colnames(df) = LETTERS[1:8]
df[df<0.2]=NA
输入:

             A         B         C         D         E         F         G         H
[1,]        NA 0.8609154 0.6660838 0.2827336 0.2862233 0.3166125 0.2187995 0.8313450
[2,] 0.6222994 0.6403106 0.5142511 0.9234335 0.2668208 0.3026934 0.8105986        NA
[3,] 0.6092747        NA 0.6935913 0.2923158        NA        NA 0.5256975 0.4560915
[4,] 0.6233794 0.2325505 0.5449748 0.8372956 0.2322259        NA 0.9146582 0.2651867
输出:

          A         B         C         D         E         F         G
1 0.8609154 0.6660838 0.2827336 0.2862233 0.3166125 0.2187995 0.8313450
2 0.6222994 0.6403106 0.5142511 0.9234335 0.2668208 0.3026934 0.8105986
3 0.6092747 0.6935913 0.2923158 0.5256975 0.4560915        NA        NA
4 0.6233794 0.2325505 0.5449748 0.8372956 0.2322259 0.9146582 0.2651867

请添加构造某些示例数据的代码段…请添加构造某些示例数据的代码段。。。