在R中,我如何为索引列表中的行设置列值?



我有一个行索引列表,表示数据框架中感兴趣的行。

> inds [1] 1 3 6 9 11

我有一个文件名列表,我想与这些行索引匹配,并在数据框中填充一个列。

[1] "C:/Temp/file/Company ABC.docx"                                         
[2] "C:/Temp/file/Company DFE.docx"                              
[3] "C:/Temp/file/Company YTS.docx"                                    
[4] "C:/Temp/file/Business ABC.docx"                         
[5] "C:/Temp/file/Business DFG.docx" 

例如,第1行(即索引1)将使用文件名列表中的第一项填充FileName。第3行(即来自indeds的索引3)将使用文件名列表中的第二项填充filename。

<表类>第一行文件名tbody><<tr>等等C:/Temp/文件/公司ABC.docx等等NA等等C:/Temp/文件/公司DFE.docx

我们可以直接使用索引而不是循环,即创建一个'FileName'作为NA列,然后根据'inds'分配值,即文件名

df$FileName <- NA_character_
df$FileName[inds] <- filenames

或使用data.table

library(data.table)
setDT(df)[inds, FileName := filenames]

for循环不需要嵌套循环。在'inds'或'filename '的序列上也需要一个单循环

df$FileName <- NA_character_
for(i in seq_along(inds)) {
df$FileName[ind[i]] <- filenames[i]
}

相关内容

  • 没有找到相关文章

最新更新