如何将多个列转换为R中的各个行

 儒志楼 发布于 2023-02-12 09:36

我在R中有一个数据帧,它有许多行(超过3000),其中有一个话语的F0(基频)轨道.行中包含以下信息:说话者ID,组#,重复#,重音类型,性别,然后50列F0点.数据如下所示:

Speaker Sex Group Repetition Accent    Word         1         2         3        4
    105   M     1          1      N AILMENT 102.31030 102.31030 102.31030 102.31127 
    105   M     1          1      N COLLEGE 111.80641 111.80313 111.68612 111.36020
    105   M     1          1      N  FATHER 124.06655 124.06655 124.06655 124.06655 

但是它不是仅仅转到X4,而是每行50个点,所以我有一个3562x56的数据帧.我想改变它,因此F0轨道中的每一列数据(因此,从1:50开始)都有自己的列,相关的列号作为另一行.我想在每个数据点的前六列中保留所有信息,所以它看起来像这样:

Speaker Sex Group Repetition Accent    Word       Num        F0
    105   M     1          1      N AILMENT         1 102.31030
    105   M     1          1      N AILMENT         2 102.31030
    105   M     1          1      N AILMENT         3 102.31030
    105   M     1          1      N AILMENT         4 102.31127
    ...
    105   M     1          1      N COLLEGE         1 111.80641 
    105   M     1          1      N COLLEGE         1 111.80313 
    105   M     1          1      N COLLEGE         1 111.68612 
    105   M     1          1      N COLLEGE         1 111.36020 
    ...

我尝试使用的代码虽然单调乏味,但如下所示:

x = 1
for (i in 1:dim(normrangef0)[1]) {
     for (j in 1:50) {
             norm.all$Speaker[x] <- normrangef0$Speaker[i]
             norm.all$Sex[x] <- normrangef0$Sex[i]
             norm.all$Group[x] <- normrangef0$Group[i]
             norm.all$Repetition[x] <- normrangef0$Repetition[i]
             norm.all$Word[x] <- normrangef0$Word[i]
             norm.all$Accent[x] <- normrangef0$Accent[i]
             norm.all$Time[x] <- j
             norm.all$F0[x] <- normrangef0[i,j+6]
             x = x+1    
    }
}

但是,当我使用norm.all作为NULL对象(仅由norm.all = c()定义)时,我最终会得到一个包含超过20万个项目的列表,其中很多是NA.当我将norm.all定义为数据帧(空数或全0中的一个,在178100x8数据帧中,我得到一个错误:

$<-.data.frame(*tmp*,"Speaker"中的错误,值= 105L):替换有1行,数据有0

我的代码完全关闭了吗?还有另一种方法吗?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有