【发布时间】:2014-09-19 00:52:44
【问题描述】:
我正在尝试读取 R 中的 SQL 数据库(sqldf、postgresql),但在一列上必须有一些限制(转换和选择)。我要调整的列包含三个可能的元素(全部为字符串),即空字符串、四个数字或四个数字后跟一个空格和两个字符。一个例子可以是
"2378", "", "4329", "4193 AM", "2195"
我只想保留实数和 1000 到 1200 之间的元素(并转换为 int 而不是字符串类型)。该列的名称是“post”,这就是我到目前为止所得到的
query = "
SELECT *, cast(post as int) as postConv
FROM base
WHERE length(post) > 0 and
length(post) < 5
"
问题是我不知道如何进行选择,以便新转换的数字只有 1000 到 1200 之间的值。现在,将制作一个额外的列“postConv”,但它是否也可能转换后的元素只是存储在“post”列中吗?
【问题讨论】:
-
是否应该返回值“1100 AM”,但返回为 1100?它介于 1000 和 1200 之间,但旁边有文字“AM”。只是想澄清你想用这些做什么。
-
不,我不想保留这些值。
-
where post between 1000 and 1200 -
这不起作用,因为元素是字符串
-
-1 你试过了吗?我猜不是,因为它确实有效。
标签: sql r postgresql sqldf