2017-03-14 7 views

答えて

4

あなたは1つのレバー下にマッピングする必要があるため、だから列がレベル2にある操作を行うことができます。

map(cyl, ~map_if(., is.numeric, mean)) 

Or:

map(cyl, map_if, is.numeric, mean) 

at_depth(cyl, 2, mean) 
+0

sooooありがとうございました。私はマップを試しました(cyl、map_if(is.numeric、mean))、私はとても近づきました。今は私にはっきりと分かります。これは人生をはるかに簡単にするでしょう。もう一度ありがとう! – cephalopod

+0

もう1つのオプションが追加されました。 – Axeman

3

あなたはlapplyを試すことができます。

lapply(cyl, function(x) map_if(x, is.numeric, mean)) 

あなたはdata.frameslistmap_if()を使用しようとしています。述語は、data.frameの各列ではなく、それぞれdata.frameに対してテストされます。

is.numeric(cyl[[1]]) 
# [1] FALSE 

そして、それがあるためである...

is.data.frame(cyl[[1]]) 
# [1] TRUE 
+0

は魔法のように機能します。ありがとう、トン。私は成功しなかった "map(map_if(cyl、is.numeric、mean))" – cephalopod

+1

Thanks @count。この例は、私の心の中でそれを非常に明確にします!あなたたちはファブです。 – cephalopod

+1

@cephalopod例のクレジットは@Simon O'Hanlonに行きます、私はコードを提供しました;) – count

関連する問題