Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从字符串中删除填充_R - Fatal编程技术网

R 从字符串中删除填充

R 从字符串中删除填充,r,R,我有一个dataframe:dat,如下所示 CODE GROUP SET 1 100 6000 20.3 2 100 7000 30.1 3 DEF 8000 120 我使用下面的语句格式化准备插入到XML中: sprintf("<rows>%s</rows>", paste(apply(dat, 1, function(x) { paste("<row

我有一个dataframe:dat,如下所示

    CODE     GROUP      SET 
1   100      6000       20.3
2   100      7000       30.1
3   DEF      8000       120
我使用下面的语句格式化准备插入到XML中:

sprintf("<rows>%s</rows>", paste(apply(dat, 1, function(x) {
  paste("<row>", paste(x, collapse="|"), "</row>", sep="")
}), collapse=""))


<rows><row>100|6000|     20.3</row><row>100|6000|     30.1</row><row>DEF|8000|     120</row><row>
sprintf(“%s”),粘贴(应用(dat,1,函数(x){
粘贴(“,粘贴(x,collapse=“|”)”,sep=“”)
}),collapse=“”))
100 | 6000 | 20.3100 | 6000 | 30.1DEF | 8000 | 120

问题是第三列中填充了空格。我认为这与sprintf中的%s有关。有什么办法可以阻止这一行为或删除空间吗?

我使用

gsub(" ","",a, fixed=TRUE)

之所以有空格,是因为
apply
dat
上调用
as.matrix
,以及
as.matrix.data.frame
方法如何将data.frame转换为字符矩阵。一个更简单的解决方案是对data.frame使用
do.call
,而不是
apply

dat <- structure(list(CODE = structure(c(1L, 1L, 2L), .Label = c("100", 
  "DEF"), class = "factor"), GROUP = c(6000L, 7000L, 8000L), SET = c(20.3, 
  30.1, 120)), .Names = c("CODE", "GROUP", "SET"), class = "data.frame",
  row.names = c("1", "2", "3"))
# paste all the rows of dat together
datRows <- do.call(paste, c(dat, sep="|"))
# add </row> [something]ML tags
Row <- paste0("<row>", datRows, "</row>", collapse="")
# add </rows> tags
Rows <- sprintf("<rows>%s</rows>", Row)

dat它与
apply
如何调用
as.matrix
on
dat
以及
as.matrix.data.frame
方法如何将data.frame转换为字符矩阵有关。我对其进行了排序-请参阅答案