我有一個大型的數據集,我必須根據我想要的搜索特定的代碼。例如,化療由40個編碼編碼,可以出現在稱爲(diag1,diag2等)的40列中的任何一列中。R參考(部分)數據幀使用字符串在R
我正在編寫一個函數,根據我想要顯示的內容生成圖。我認爲在輸入數據框中指定我想繪製的內容是很好的。因此,例如,如果我只是想繪製患者化療的事件,我想有這樣一個數據幀:
Dataframe name: Style
Name SearchIn codes PlotAs PlotColour
Chemo data[substr(names(data),1,4)=="diag"] 1,2,3,4,5,6 | red
我已經有了,搜索在和數據幀的特定部分代碼的功能標記感興趣的事件。 我不能做什麼,需要你的幫助,指的是使用上述數據幀中的代碼的數據框(Style $ SearchIn [1])。
> Style$SearchIn[1]
[1] data[substr(names(data),1,4)=="diag"]
Levels: data[substr(names(data),1,4)=="diag"]
我想也許得到()會的工作,但我不能得到它的工作:
> get(Style$SearchIn[1])
Error in get(vars$SearchIn[1]) : invalid first argument
enter code here
或
> get(as.character(Style$SearchIn[1]))
Error in get(as.character(Style$SearchIn[1])) :
object 'data[substr(names(data),1,5)=="TDIAG"]' not found
顯然,運行數據[SUBSTR(名字(數據),1,5)==「TDIAG」]的作品。
例子:
library(survival)
ex <- data.frame(SearchIn="lung[substr(names(lung),1,2) == 'ph']")
lung[substr(names(lung),1,2) == 'ph'] #works
get(ex$SearchIn[1]) # does not work
@TimBiegeleisen我不同意,我不認爲這個問題寫得不好。 OP只是在解決設計問題,並試圖以不可取的方式使用數據框架和動態邏輯。我認爲這個問題的總體意圖是明確的。 – bgoldst