sapply жана lapply R ортосундагы айырмасы эмнеде? Кийин башка пайдалануудан бир керек? Bonus: качан Vapply колдоно билишибиз керек?


жооп 1:

Мен буга чейин эле +, милдети эмне колдон эмне деп ойлошот :-).

lapply жана sapply ортосундагы негизги айырмачылык sapply lapply мүмкүн болушунча маселесин жөнөкөйлөтүү аракет болуп саналат. сиздин тизмесинин ар бир элементи үчүн бир маанини кайтарат, анда sapply кайра бул баалуулуктар, мисалы, бир багыты болуп саналат. Эгер тизме заттар узундугун текшерүү үчүн пайдалуу болсо.

Дагы бир мүмкүнчүлүк сиздин ар бир тизме нерсенин багыттары Z бирдей өлчөмүн кайтарып турат. B. аймагы жана Quantilfunktionen. Бул учурда sapply узундугу сенин багыттарын дал катар бир катар менен Булакта жана тизме узундугуна жараша катардан бир катар.

sapply маселесин жөнөкөйлөтүү мүмкүн эмес болсо, анда ал жөн гана lapply сыяктуу кыймылдайт.

sapply кайтып баалуулуктарды (кээде бир тизме, кээде усул же багыты) кош болушу керек караганда бир аз татаал өнүктүрүү пакеттерди кылат. Сиз sapply стимулдоочу пайдалануу болсо, (же керек), ар бир кайра наркынын тобу колго текшерүү керек, жана тиешелүү өзгөчөлүктөр. Vapply жакшы Бул анын аргументи, FUN.VALUE менен чечет. Сиз ачык сиздин чыгаруу эмне аныкталышы керек (каармандар, сандарды, бүтүн, эмнеден же кандай болбосун), жана узундугу.

Мен буга чейин Vapply пайдаланууга качан элестете алабыз деп ойлойм: башка бирөө берсе, пайдалануу үчүн мүмкүнчүлүктөр, сен sapply Vapply пайдасына керек, аны ачылуучу :-).


жооп 2:

sapply эле lapply мүмкүн болсо, натыйжасын жөнөкөйлөтүү үчүн аракет кылып жатат. Sun:

  • lapply натыйжасы ар бир элементи узундугу бар турган тизме болсо, кайрадан бир багыттарын sapply. Натыйжада ар бир элементи ошол эле узундугу (> 1) бир багыты болуп турган тизме болсо, анда бир катар Мен кайтып тизмесин таба албайт, кайтып келген.

мисалы:

lapply менен:

> X <- тизме (а = 1: 4, б = rnorm (10), с = rnorm (20, 1), д = rnorm (100, 5))> lapply (х, орточо) бир [1] $ 2,5 $ б [1] $ 0,06082667 с [1] $ 1,467083 г [1] 5,074749

sapply менен:

> Sapply (х, орточо мааниси) ABCD 2.50000000 0,06082667 1,46708277 5,07474950

жооп 3:

Балким, мен силерге бир мисал бере алат:

Бул иш алып барат, ал эми экинчи мүмкүн эмес:

# 1

л <- тизме ( "а", "б", с ( "х", "ж"), C ( "1", "3", "4"))

З <- макс (sapply (л, милдети (х) узундугу (х)))

# 2

л <- тизме ( "а", "б", с ( "х", "ж"), C ( "1", "3", "4"))

З <- макс (lapply (л, милдети (х) узундугу (х)))

макс () милдети тизмеге тиешеси жок болгондуктан, ал эми бир багытка үчүн. Анан lapply тизмесин жана sapply берүүнүн бир багыттуу кайтарат.