如果这个问题得到解答,我道歉。我已经搜索了太久了。
我编码的数据前缀为字母和数字后缀。 例如:
A01, A02,...A99 ### (for each letter A-Z)
我需要反映此SAS代码的R代码:
Proc SQL;
Create table NEW as
Select *
From DATA
Where VAR contains 'D';
Quit;
修改
对不起,你们,我是新人! (同样,R中的平庸也是最好的。)我认为发布SAS / SQL代码有助于简化它。
无论如何,数据是制造数据。我有一个变量,其值是A01 ... A99等值。
(粗略)数据帧的例子:
OBS产品价格工厂
1手机8.55 A87
2篇105.97 X67
3线.59 D24
4显示器98.65 D99
数据的规模是巨大的,我只想关注来自工厂'D'的观察,所以我试图根据包含的'PLANT'变量对数据进行子集化(或者以'D'开头。我知道如何使用特定值过滤数据(即==,> =,!=等)。当只知道部分值时,我无法弄清楚如何做到这一点我还没有找到关于R中'contains'运算符的任何内容。我希望能更明确地澄清一些事情。
答案 0 :(得分:1)
假设DATA
是您的data.frame而VAR
是您的列值,
DATA <- data.frame(
VAR=apply(expand.grid(LETTERS[1:4], 1:3), 1, paste0, collapse=""),
VAL = runif(3*4)
)
然后你可以做
subset(DATA, grepl("D", VAR))
答案 1 :(得分:0)
替代MrFlick的解决方案:使用行索引向量:
DATA[grep('D', DATA$VAR), ]
VAR VAL
4 D1 0.31001091
8 D2 0.71562382
12 D3 0.00981055
我们定义的地方:
DATA <- data.frame(
VAR=apply(expand.grid(LETTERS[1:4], 1:3), 1, paste0, collapse=""),
VAL = runif(3*4)
)