在列表的所有数据框中将空格填充到一列

时间:2019-11-20 14:12:51

标签: r list dataframe padding stringr

我正在开发一个函数,该函数想在数据帧列表中的特定列右边填充。 但我想使用基于公式的宽度,该公式将列表中每个数据框的列内的最大字符数加5。

因此,首先我计算列表“数据集”的“物种”列中每个名称中的多少个字母:

letrs.taxlabs <- lapply(datset, function(x)nchar(x$species))

使用以下代码,我在数据框中获得了每个物种名称的最大值,并添加了5:

maxletrs.taxlabs <- lapply(letrs.taxlabs, function(x)max(x)+5)

maxletrs.taxlabs <- max(unlist(maxletrs.taxlabs))

然后,我确定已创建对象“ maxletrs.taxlabs”,即要与str_pad函数一起用作“ width”的值“ 29”:

 print(paste("maxletrs.taxlabs = ", maxletrs.taxlabs))

但是...当我使用以下代码填充所有数据框的列...

 datset <- lapply(datset, transform, species=str_pad(species, 
 width=maxletrs.taxlabs, pad=" ", side="right"))

我收到以下错误:

 Error in stri_pad_right(string, width, pad = pad): 
 object 'maxletrs.taxlabs' not found

所以,我不知道为什么在运行函数时无法识别对象“ maxletrs.taxlabs” ...但这很奇怪,因为当我分别创建“ maxletrs.taxlabs”对象并运行上一个对象时,用于填充的代码,或者当我运行我的整个功能时,所有代码都能完美返回,所有功能都能正常工作。

0 个答案:

没有答案