我正在开发一个函数,该函数想在数据帧列表中的特定列右边填充。 但我想使用基于公式的宽度,该公式将列表中每个数据框的列内的最大字符数加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”对象并运行上一个对象时,用于填充的代码,或者当我运行我的整个功能时,所有代码都能完美返回,所有功能都能正常工作。