我有一个大型的数据集,我必须根据我想要的搜索特定的代码。例如,化疗由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