R 在数据框打印期间缩写列名

R 在数据框打印期间缩写列名,r,mobile,printing,R,Mobile,Printing,R的缩写()用于将数据帧的列名截断为设定长度,并进行精确检查以确保唯一性等: abbreviate(names(dframe), minlength=2) 当然,可以使用此函数在适当的位置缩写列名,然后打印出修改后的数据帧 >>names(dframe) <- abbreviate(names(dframe), minlength=2) >>dframe 名称(dframe)>dframe 但是我想用缩写的列名打印数据框,而不需要在此过程中更改数据框。希望这可

R的缩写()用于将数据帧的列名截断为设定长度,并进行精确检查以确保唯一性等:

abbreviate(names(dframe), minlength=2)
当然,可以使用此函数在适当的位置缩写列名,然后打印出修改后的数据帧

>>names(dframe) <- abbreviate(names(dframe), minlength=2)
>>dframe
名称(dframe)>dframe 但是我想用缩写的列名打印数据框,而不需要在此过程中更改数据框。希望这可以通过print()调用中的一个简单的format选项来实现,尽管我在print的帮助页和format方法(如print.data.frame)中的搜索没有找到任何明显的解决方案(可用选项似乎更多地用于格式化列值,而不是列名称)

那么,print()或format()是否有对列名调用缩写()的选项?如果没有,在将数据帧传递给print()之前,是否有方法将缩写()应用于数据帧的列名,而不改变传递的数据帧

我想得越多,就越觉得唯一的方法是向print()传递数据框的一个副本,其中包含已缩写的列名。但这对我来说不是一个解决方案,因为我不想在交互式会话中更新原始副本时不断更新此副本。原始列名必须保持不变,因为我使用哪个(colnames(dframe)=“name\u of_column”)与数据接口


我的最终目标是在使用ssh应用程序(如ServerAuditor)时,在我的移动设备的小屏幕上远程工作得更好。如果列名仅缩写为2-3个字符,我仍然可以识别它们,但可以在屏幕上显示更多数据。甚至可能有更适合压缩打印的R包?

只需重写
print.data.frame

 print.data.frame <-
               function(x) setNames( print(x), 
                                abbreviate(names(dframe), minlength=2) )

print.data.frame您可以定义自己的打印方法

print.myDF <- function(x, abbr = TRUE, minlength = 2, ...) {
    if (abbr) {
        names(x) <- abbreviate(names(x), minlength = minlength) 
    }
    print.data.frame(x, ...)
}

好的,偷取BondedDust的答案:-)好的,很简单,添加了
类和
abbr
的默认参数,做得很好!Duh函数已经可以与副本一起使用,这样就不会改变原始文件。一、 同样,定义
也是一个非常干净的解决方案。这将成为noob未来编程实践的一部分:)
class(iris) <- c("myDF", class(iris))
head(iris, 3)
#   S.L S.W P.L P.W     Sp
# 1 5.1 3.5 1.4 0.2 setosa
# 2 4.9 3.0 1.4 0.2 setosa
# 3 4.7 3.2 1.3 0.2 setosa
print(head(iris, 3), abbr = FALSE)
#   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1          5.1         3.5          1.4         0.2  setosa
# 2          4.9         3.0          1.4         0.2  setosa
# 3          4.7         3.2          1.3         0.2  setosa
print(head(iris, 3), minlength = 5)
#   Spl.L Spl.W Ptl.L Ptl.W  Specs
# 1   5.1   3.5   1.4   0.2 setosa
# 2   4.9   3.0   1.4   0.2 setosa
# 3   4.7   3.2   1.3   0.2 setosa