【发布时间】:2012-10-22 04:49:07
【问题描述】:
我想有条件地对一个数据帧进行子集化而不引用该数据帧。例如,如果我有以下内容:
long_data_frame_name <- data.frame(x=1:10, y=1:10)
我想说:
subset <- long_data_frame_name[x < 5,]
但是,我不得不说:
subset <- long_data_frame_name[long_data_frame_name$x < 5,]
plyr 和 ggplot 处理得非常好。是否有任何软件包可以使数据框的子集化同样漂亮?
【问题讨论】:
-
美在旁观者的眼中。 :-) 你可能会觉得
with更可爱。 -
@Carl 我看不出
with在这种情况下如何应用。尽管如此,我认为如果不使用with和within,很难编写漂亮的R 代码。 -
@Roman 怎么样?您仍然需要输入两次
data.frame的名称。 -
我同意@mplourde:使用
with,你仍然需要subset <- with(long_data_frame,long_data_frame_name[x < 5,]),这不会节省太多(只有当你有一堆条件要设置子集时它才会有用)- - 除非我错过了什么? -
@BenBolker 是的,你是对的。我正在尝试 :-( 来扩展我对“有吸引力”代码的主观性的尖刻评论。我自己会选择
subset。