R 如何向所有列添加报价?
我正在尝试自动向数据帧中的所有元素添加引号,而不必显式地提供col名称。有什么办法可以做到吗 我试过:R 如何向所有列添加报价?,r,dataframe,R,Dataframe,我正在尝试自动向数据帧中的所有元素添加引号,而不必显式地提供col名称。有什么办法可以做到吗 我试过: x<-iris for (i in colnames(x)){ paste0('x$',i)<-paste0('"x$',i,'"') } x使用内置数据框BOD我们有以下内容。请注意,它不会覆盖输入,而是生成新的输出 replace(BOD, TRUE, lapply(BOD, shQuote, type = "cmd")) 给予
x<-iris
for (i in colnames(x)){
paste0('x$',i)<-paste0('"x$',i,'"')
}
x使用内置数据框BOD
我们有以下内容。请注意,它不会覆盖输入,而是生成新的输出
replace(BOD, TRUE, lapply(BOD, shQuote, type = "cmd"))
给予:
Time demand
1 "1" "8.3"
2 "2" "10.3"
3 "3" "19"
4 "4" "16"
5 "5" "15.6"
6 "7" "19.8"
这里有一个解决方案:
x <- iris
x[] <- lapply(x, sprintf, fmt = '"%s"')
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 "5.1" "3.5" "1.4" "0.2" "setosa"
2 "4.9" "3" "1.4" "0.2" "setosa"
3 "4.7" "3.2" "1.3" "0.2" "setosa"
4 "4.6" "3.1" "1.5" "0.2" "setosa"
5 "5" "3.6" "1.4" "0.2" "setosa"
6 "5.4" "3.9" "1.7" "0.4" "setosa"
...
x
x <- iris
x[] <- lapply(x, sprintf, fmt = '"%s"')
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 "5.1" "3.5" "1.4" "0.2" "setosa"
2 "4.9" "3" "1.4" "0.2" "setosa"
3 "4.7" "3.2" "1.3" "0.2" "setosa"
4 "4.6" "3.1" "1.5" "0.2" "setosa"
5 "5" "3.6" "1.4" "0.2" "setosa"
6 "5.4" "3.9" "1.7" "0.4" "setosa"
...