挑戰5
使用矩陣既方便又快速。 許多作用於單一值的函數也可以應用於整個矩陣。 此外,還有諸如最大電壓, V 平均值,和V分位數可以應用於矩陣的函數(在這些情況下為列)。 本月的挑戰旨在將其提升到一個新的水平。 我們將尋求將此功能擴展到 JSL 中不可用的函數,並針對矩陣和清單執行此操作。
- 編寫一個名為瘋狂的以向量作為輸入並傳回中位數絕對偏差(與資料中位數的絕對差值的中位數)。 例如,瘋狂的([1,2,3,1000]) 回傳 1。 如果有偶數個觀測值,則取中間的平均值來計算中位數。
- 寫一個函數修剪均值(向量,百分比,聚氯乙烯) 需要一個向量 (向量) 和 0 到 0.5 之間的值對應於以下觀察值的百分比 (百分比) 以上 (聚氯乙烯) 在計算平均值之前刪除的平均值。 修剪值的百分比應該是不超過輸入百分比的最大數字。
- 寫一個函數清單包含(列表輸入,值字串) 接受一個字串清單 (列表輸入) 和一個字串 (值字串)並傳回一個矩陣值列表,其中矩陣的每個元素對應的起始位置值字串在裡面j第一項列表輸入(即,一個項目列表輸入可能含有值字串不只一次)。 如果項目不包含字串,則傳回缺失值。
- 寫一個函數應用函數(列表輸入,號,參數列表) 接受一個輸入清單 (列表輸入) 並應用該函數號有參數參數列表到它。 假設清單僅包含數字或字串。 該函數應該適用於內建函數和使用者提供的函數。 它可以傳回單一值、矩陣或值列表,這取決於輸入函數。 為簡單起見,假設提供給 applyFunction 的任何函數僅需要對字元、字串、數字、矩陣或列表進行操作(僅限於字元、字串、數字、矩陣或列表項目)。
評分:第 1 項和第 2 項得 2 分,第 3 項和第 4 項得 6 分。 如果您可以在不使用循環(任何類型)或資料表的情況下編寫第 3 項或第 4 項,則可加四分。
報名截止日期為美國東部時間 8 月 17 日星期一晚上 11:59 。
2020 年 8 月 11 日:對於挑戰的幾個方面存在一些混亂。 讓我看看是否可以解決問題:
- 為了修剪均值,百分比和聚氯乙烯是以下範圍為 0 且以上範圍為 0.5 的分數值。 例如,如果百分比= 0.23,則刪除下尾部 23% 的值。
- 為了清單包含, 如果列表輸入= {“ABCD”,“DEFG”,“GHIJ”} 和值字串= "D",則傳回 [4,1,.]。
- 為了應用函數, 兩個都列表輸入和參數列表是論據號。 主要區別在於列表輸入永遠不會為空,但是參數列表可能為空。 例如,如果列表輸入= {"ABCD","DEFG","GHIJ"} 和號=包含, 然後參數列表應該是一個至少包含一個要搜尋的子字串的清單。 如果號=長度, 然而,參數列表會是空的。 在以下情況下號可以應用於各個元素,這樣做。 例如,如果號=查爾,而不是返回引用的列表,而是引用列表的各個元素。
希望這能讓事情變得更清楚。 如果沒有,請告訴我。

本月的挑戰變得更加複雜。
JMP 博客回覆:挑戰 5對不起大家。 事情對我來說真的很忙,這個挑戰比我預想的要棘手。 我快要寫完了,本週末應該會有一些東西。 希望不久之後會出現新的挑戰。
回覆:挑戰 5有這方面的消息嗎?
回覆:挑戰 5謝謝!
回覆:挑戰 5@大衛_伯納姆我假設是第二個。
回覆:挑戰 5也許是時候問最後一個問題了。ArgList - 是參數清單或實際的 JMP 清單:
applyFunction(inList,fn,a,b,c,flag)
或者
applyFunction(inList,fn,{a,b,c},flag)
如果我沒有收到你的消息,我會認為也可能是這樣!
回覆:挑戰 5沒問題! 這有助於闡明嘗試執行此操作時遇到的問題。 讓我們新增一個標誌作為 applyFunction 的最後一個參數,以指示它是應該按列表應用還是按元素應用。
應用函數(清單中,號,參數列表,旗幟)
回覆:挑戰 5這是非常清楚的,我很樂意接受這些假設。
但是(抱歉!)我可以立即想到一個反方案:JMP 函數連接項目和包含處理整個清單而不是單一元素。雖然我想要和要應用於整個列表,我想要圓形的應用於元素。(我們是否可以沒有一個標誌參數來指示函數是在列表層級還是在單一元素層級操作)。
再次抱歉,我覺得我很痛苦。
回覆:挑戰 5謝謝大衛,
讓我們使用以下假設:
- 號是一個字串。
- 列表輸入是一個完全由數字或完全由字串組成的列表。 如果是數字的話,號將在整個輸入值向量上執行其操作。 如果是字符,它將對各個元素執行操作。
- 參數出現的順序參數列表與使用的順序相同號。
希望這能讓事情變得清楚一些。 再次強調,如果沒有,請告訴我。
回覆:挑戰 5感謝唐的澄清。對 applyFunction 來說,是號表示為字串?如果號可以是任何函數,我們如何知道它是否可以應用於單一元素? - applyFunction 只是將函數名稱視為輸入參數,它不知道該函數能夠做什麼?而如果列表輸入是一個數字列表,那麼對整個列表求和是有意義的,但或者每個項目可能是一個列表,在這種情況下,返回總和列表可能是有意義的。