看了一下帮助文档,这是因为ifelse(test,yes,no) 返回值的长度(yes 或no )0跟 test 长度一致,所以默认返回的是d的第一个元素。
另外嵌套的if容易绕晕了。试试这个:
hh <- function(d) {
row_num <- min(5,nrow(d))
col_num <- min(5,ncol(d))
return(d[1:row_num,1:col_num])
}
题外话:
其实预览过大的dataframe,可以把data.frame 转成dplyr里的 tibble类型,输出的时候更加友好。示例如下:
library(dplyr)
e <- matrix(rnorm(10000, 10), nrow = 100, ncol = 100)
e.tbl <- e %>% as_tibble()
print(e.tbl)
# output:
# A tibble: 100 x 100
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 9.767922 10.506029 12.162051 10.159500 8.959502 8.398393 8.662422 10.759813 11.247290 10.540748 8.454420 7.891270 11.968069
2 9.795536 8.899395 9.662408 9.598087 8.868787 9.809561 9.491635 10.752039 8.791189 11.783662 11.756956 9.993479 11.538477
3 11.811071 10.433819 11.013525 11.169525 11.126468 10.535497 9.758623 10.296236 10.052694 9.670779 11.317730 9.513749 8.729680
4 10.821123 10.663193 8.479644 8.952310 9.419698 9.915063 10.151850 9.178544 9.896801 11.863258 11.280748 9.798705 10.311144
5 12.045894 8.626941 9.657361 10.287920 10.453851 9.431597 10.685840 11.208082 9.117125 10.397912 10.291450 9.409364 8.790023
6 10.880865 9.963627 9.519699 10.269649 11.339455 9.992024 10.226878 8.002209 9.893906 9.926234 9.199845 9.263402 9.483834
7 9.589348 9.380586 10.270431 11.321060 11.112333 11.974878 10.226779 10.067171 9.171524 8.777923 8.872848 8.676071 9.584641
8 9.114790 10.857223 7.985930 9.774945 8.383482 10.418749 9.978172 10.626843 8.504623 10.093955 10.584197 9.577183 9.865054
9 9.280508 10.109454 9.630102 9.869388 9.229147 9.984704 10.939051 10.121501 10.150601 10.757269 8.430427 9.605657 10.139858
10 9.943574 9.843644 9.543620 9.225107 9.233981 10.239318 9.641122 7.996539 11.503728 9.499256 12.168431 11.292946 10.120152
# ... with 90 more rows, and 87 more variables: V14 <dbl>, V15 <dbl>, V16 <dbl>, V17 <dbl>, V18 <dbl>, V19 <dbl>, V20 <dbl>, V21 <dbl>,
# V22 <dbl>, V23 <dbl>, V24 <dbl>, V25 <dbl>, V26 <dbl>, V27 <dbl>, V28 <dbl>, V29 <dbl>, V30 <dbl>, V31 <dbl>, V32 <dbl>, V33 <dbl>,
# V34 <dbl>, V35 <dbl>, V36 <dbl>, V37 <dbl>, V38 <dbl>, V39 <dbl>, V40 <dbl>, V41 <dbl>, V42 <dbl>, V43 <dbl>, V44 <dbl>, V45 <dbl>,
# V46 <dbl>, V47 <dbl>, V48 <dbl>, V49 <dbl>, V50 <dbl>, V51 <dbl>, V52 <dbl>, V53 <dbl>, V54 <dbl>, V55 <dbl>, V56 <dbl>, V57 <dbl>,
# V58 <dbl>, V59 <dbl>, V60 <dbl>, V61 <dbl>, V62 <dbl>, V63 <dbl>, V64 <dbl>, V65 <dbl>, V66 <dbl>, V67 <dbl>, V68 <dbl>, V69 <dbl>,
# V70 <dbl>, V71 <dbl>, V72 <dbl>, V73 <dbl>, V74 <dbl>, V75 <dbl>, V76 <dbl>, V77 <dbl>, V78 <dbl>, V79 <dbl>, V80 <dbl>, V81 <dbl>,
# V82 <dbl>, V83 <dbl>, V84 <dbl>, V85 <dbl>, V86 <dbl>, V87 <dbl>, V88 <dbl>, V89 <dbl>, V90 <dbl>, V91 <dbl>, V92 <dbl>, V93 <dbl>,
# V94 <dbl>, V95 <dbl>, V96 <dbl>, V97 <dbl>, V98 <dbl>, V99 <dbl>, V100 <dbl>