例如,我有一个包含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))
具体的应用是能够根据第一个数据帧中的值搜索另一个数据帧。
我有2个数据框:Phoneme_Features和Phonetic_Dictionary(有130,000行)。音素特征是数据帧,其中每行对应于大约20个语音特征(例如,F =辅音= 1,元音= 0,阴唇= 1,牙齿= 1等)。 Phonetic_Dictionary包含130,000个单词以及相应的语音转录(例如语音F AH0 N EH1 T IH0 K S) 我想使用新变量替换另一个数据帧的值(存储为因子),以便我可以通过第一个数据框(Phoneme功能)中的功能搜索第二个数据帧中的项目。
我希望能够搜索Phonetic_Dictionary并返回第一列包含辅音值1的每个条目。换句话说,能够在字典中搜索具有初始辅音或最终高元音的所有条目,或者第一个数据帧Phoneme_Features中的任何其他特征。
答案 0 :(得分:1)
您可以使用assign()
和paste0()
以编程方式创建变量名称。
使用虹膜数据集的示例:
for(i in 1:nrow(iris)){
assign(paste0('row_name_',i),iris[i,])
}
paste0()
将行号i
附加到字符串row_name_
,然后assign()
然后将新创建的变量名称分配给环境,值为{{ 1}}
答案 1 :(得分:0)
感谢大家的帮助。我能够通过使用得到我想要的东西:
for(i in 1:nrow(Phoneme_Features)){
assign(paste0(Phoneme_Features[i, ]), Phoneme_Features[i, ])}