-1

data.frame があり、次のように印刷しsapplyます。

df <- data.frame(name=c("alice","becka","james","jeffery","john"),  
                 sex=c("F","M","M","F","M"),  
                 age=c(13,13,12,13,12),  
                 height=c(56.5,65.3,57.3,62.5,69),  
                 weight=c(84,98,83,84,99.5),stringsAsFactors = FALSE)  
sapply(df,function(x){print(x)})  

 [1] "alice"   "becka"   "james"   "jeffery" "john"     
 [1] "F" "M" "M" "F" "M"  
 [1] 13 13 12 13 12  
 [1] 56.5 65.3 57.3 62.5 69.0  
 [1] 84.0 98.0 83.0 84.0 99.5  
      name      sex age  height weight  
 [1,] "alice"   "F" "13" "56.5" "84"    
 [2,] "becka"   "M" "13" "65.3" "98"    
 [3,] "james"   "M" "12" "57.3" "83"    
 [4,] "jeffery" "F" "13" "62.5" "84"    
 [5,] "john"    "M" "12" "69"   "99.5"  

出力が次のようにならないのはなぜですか。

 [1] "alice"   "becka"   "james"   "jeffery" "john"     
 [1] "F" "M" "M" "F" "M"  
 [1] 13 13 12 13 12  
 [1] 56.5 65.3 57.3 62.5 69.0  
 [1] 84.0 98.0 83.0 84.0 99.5  

出力全体の一部として最後に data.frame があるのはなぜですか?

       name      sex age  height weight  
 [1,] "alice"   "F" "13" "56.5" "84"    
 [2,] "becka"   "M" "13" "65.3" "98"    
 [3,] "james"   "M" "12" "57.3" "83"    
 [4,] "jeffery" "F" "13" "62.5" "84"    
 [5,] "john"    "M" "12" "69"   "99.5"   
4

2 に答える 2

3

print値を返し、可能であればsapplyその結果を に変換します。matrixこの場合、要求されたすべてのものを出力し、その値である文字マトリックスを返しました。invisible2 番目のステップを非表示にするために使用します。

> invisible(sapply(df,function(x){print(x)}))
[1] "alice"   "becka"   "james"   "jeffery" "john"   
[1] "F" "M" "M" "F" "M"
[1] 13 13 12 13 12
[1] 56.5 65.3 57.3 62.5 69.0
[1] 84.0 98.0 83.0 84.0 99.5

OPの希望する「信頼できるまたは公式の情報源」は、例で見つけることができます:

> a <- print('bah')
> a
[1] "bah"

編集:おっと。のドキュメントで?print.defaultは、引数を返すと明示的に述べています。(ありがとう、@joran。)それでも、「値」セクションで再び言及することを期待していますが...

于 2013-11-06T01:22:43.963 に答える