【发布时间】:2021-12-11 08:28:41
【问题描述】:
我正在使用 R 版本 4.0.4 (2021-02-15) 开发 MacOS Big Sur 11.6
我正在尝试在 for 循环中使用 paste(),但我需要 paste 函数中的值随着每次迭代而改变。
我有一个这样的数据框:
pathname S
1 user/folder/photo1 A
2 user/folder/photo2 B
3 user/folder/photo3 C
我正在尝试将 EXIF 评论标签添加到我的照片的元数据中。我希望 Comment 标签根据 S 列值进行更改。我有这样的代码:
for(i in df$pathname){
x <- df$S[i]
sysCommand <- paste("exiftool -Comment=x i")
system(sysCommand)
}
粘贴函数中的输入(即 x 和 i)应在遍历列表时更改。
感谢您的帮助!
【问题讨论】:
-
试试:
paste0("exiftool -Comment=", x, " ", i) -
像任何其他字符值一样构建字符串:
sysCommand <- paste0("exiftool -Comment=", x, " ", i)。您可能需要确保x没有任何空格,否则您可能会得到一个无效的命令。 -
您也可以使用
glue包:sysCommand <- glue::glue("exiftool -Comment={x} {i}")。你只需要“拥抱”({ })字符串中的变量名。
标签: r metadata system paste exif