为数据帧中的每一行创建一个新的列表变量,其中每个变量都分配给行名或第一列



例如,我有一个40行20列的data.frame,并希望创建100个变量,分配给第一行(字符串)的名称:

row_name_1 <- df[1, ]

有没有一种方法可以为所有100行编写一个循环,从而省去键入40行代码的麻烦?

我已经尝试使用这个代码:

Phoneme_Features.list <- setNames(split(Phoneme_Features,
seq(nrow(Phoneme_Features))), rownames(Phoneme_Features)) 

这方面的具体应用是能够基于来自第一数据帧的值来搜索另一数据帧。

我有两个数据帧:Phoneme_Features和Phonetic_Dictionary(有130000行)。语音特征是数据帧,其中每行对应于大约20个语音特征(例如F=辅音=1,元音=0,唇侧=1,牙齿=1,等等)。Phonetic_Dictionary包含130000个具有相应语音转录的单词(例如,语音F AH0 N EH1 T IH0 K S)我想使用新的变量来替换另一个数据帧(存储为因子)的值,这样我就可以用第一个数据帧中的特征来搜索第二个数据帧的项目(Phoneme features)。

我希望能够搜索Phonetic_Dictionary,并返回第一列包含辅音值1的每个条目。换句话说,为了能够在字典中搜索具有声母、词尾高元音或第一数据帧Phoneme_Features中的任何其他特征的所有条目。

您可以使用assign()paste0()以编程方式创建变量名。

使用虹膜数据集的示例:

for(i in 1:nrow(iris)){
assign(paste0('row_name_',i),iris[i,])
}

paste0()将行号i附加到字符串row_name_,然后assign()将新创建的变量名分配给具有值iris[i,]的环境

感谢大家的帮助。我可以通过使用得到我想要的东西

for(i in 1:nrow(Phoneme_Features)){
assign(paste0(Phoneme_Features[i, ]), Phoneme_Features[i, ])}

最新更新