/ / क्यों sapply () और lapply () एक ही परिणाम है? - आर

Sapply () और lapply () का एक ही परिणाम क्यों है? - आर

मैं आर के लिए नया हूँ मैं लापरवाही () और sapply () फ़ंक्शन का अभ्यास कर रहा था: lapply () रिटर्न सूची, और sapply () वेक्टर / मैट्रिक्स के रूप में लौटता है। अब मैं समझ नहीं पा रहा हूं कि क्यों lapply () और sapply () एक सूची के रूप में एक ही परिणाम है?

> x1 <- lapply(list(1:3, 25:29), function(x) {2*x})
> x2 <- sapply(list(1:3, 25:29), function(x) {2*x})
> x1
[[1]]
[1] 2 4 6

[[2]]
[1] 50 52 54 56 58

> x2
[[1]]
[1] 2 4 6

[[2]]
[1] 50 52 54 56 58

> str(x2)
List of 2
$ : num [1:3] 2 4 6
$ : num [1:5] 50 52 54 56 58
> mode(x2)
[1] "list"

इसके बाद, मैंने असूची () को चेक किया और यह एक वेक्टर के समान इनपुट लौटाता है। यह समझना मुश्किल है कि परिणामस्वरूप sapply () वापसी सूची प्रकार क्यों करते हैं।

धन्यवाद।

उत्तर:

जवाब के लिए 5 № 1

अगर length का list तत्व समान नहीं हैं, sapply इसे मैट्रिक्स पर सहारा नहीं देगा और इसका परिणाम भी होगा lapply

हम उपयोग की जांच कर सकते हैं ?sapply तथा ?lapply

लापरवाही (एक्स, मज़ा, ...)

sapply (एक्स, मज़ा, ..., सरलीकृत = सही, उपयोग करें। नाम = TRUE)

The simplify=TRUE एक है कि धर्मांतरित एक list के बराबर लंबाई उत्पादन के लिए एक matrix