R 将查询输出转换为 table
R convert query output to table
R 编程新手。
我有一个简单的 sql 服务器查询,其输出如下所示:
EFFECTIVE_DATE NumberOfUser
2015-07-01 564
2015-07-02 433
2015-07-03 306
2015-07-04 50
以下是我发出查询的方式:
barData <- sqlQuery(sqlCon,
"select EFFECTIVE_DATE,COUNT(USER_ID) as NumberOfUser from UserTable where start_dt between '20150701' AND '20150704' group by EFFECTIVE_DATE order by EFFECTIVE_DATE")
现在我是 运行 来自 R 的这个查询,并想对此做一个条形图。最好的方法是什么?
另外,如何将任何查询结果转换为 data.table 以便我可以绘制条形图?当我尝试 table(myList)
时,它显示的是完全不同的格式。
假设您在 R 中使用了 sqldf
包,sql 形式的 SELECT EFFECTIVE_DATE, NUM_OF_USERS FROM USERTABLE
查询将使用 sqldf(x, stringsAsFactors = FALSE,...)
语句执行:
sql_string <- "select
effective_date
, num_of_users
from USRTABLE"
user_dates <- sqldf(join_string,stringsAsFactors = TRUE)
导致 data.frame 对象。使用 data.table 包将数据框转换为数据 table:
user_dates <- as.data.table(user_dates)
将使用 sqldf 语句创建新数据框 user_dates
。 sqldf 语句至少需要一个带有 SQL 操作的字符串。 stringsAsFactors
参数将强制分类变量具有 class 字符而不是因子。
EDIT :真诚的道歉,没有看到你在问题中说明包名。如果您决定使用 sqldf 包,创建条形图是对 barplot(height, ...)
函数的直接调用:
barplot(user_dates$num_of_users,names.arg=user_dates$effective_date)
另请注意,sql成功执行查询的结果是数据框而不是列表:
On success, a data frame (possibly with 0 rows) or character string. On error, if
errors = TRUE
a character vector of error message(s), otherwise an invisible integer error code
-1
(general, call
odbcGetErrMsg
for details) or
-2
(no data, which may not be an error as some SQL statements do
return no data).
sqlQuery
上的帮助(我一般不使用ODBC)说返回"On success, a data frame…"。那意味着你应该能够做这样的事情:
barplot(barData$NumberOfUser, names.arg=barData$EFFECTIVE_DATE,
xlab="Effective Date", ylab="Number of Users")
但是将 dput(barData)
的输出发布到您的问题中确实可以更轻松地帮助您。
R 编程新手。 我有一个简单的 sql 服务器查询,其输出如下所示:
EFFECTIVE_DATE NumberOfUser
2015-07-01 564
2015-07-02 433
2015-07-03 306
2015-07-04 50
以下是我发出查询的方式:
barData <- sqlQuery(sqlCon,
"select EFFECTIVE_DATE,COUNT(USER_ID) as NumberOfUser from UserTable where start_dt between '20150701' AND '20150704' group by EFFECTIVE_DATE order by EFFECTIVE_DATE")
现在我是 运行 来自 R 的这个查询,并想对此做一个条形图。最好的方法是什么?
另外,如何将任何查询结果转换为 data.table 以便我可以绘制条形图?当我尝试 table(myList)
时,它显示的是完全不同的格式。
假设您在 R 中使用了 sqldf
包,sql 形式的 SELECT EFFECTIVE_DATE, NUM_OF_USERS FROM USERTABLE
查询将使用 sqldf(x, stringsAsFactors = FALSE,...)
语句执行:
sql_string <- "select
effective_date
, num_of_users
from USRTABLE"
user_dates <- sqldf(join_string,stringsAsFactors = TRUE)
导致 data.frame 对象。使用 data.table 包将数据框转换为数据 table:
user_dates <- as.data.table(user_dates)
将使用 sqldf 语句创建新数据框 user_dates
。 sqldf 语句至少需要一个带有 SQL 操作的字符串。 stringsAsFactors
参数将强制分类变量具有 class 字符而不是因子。
EDIT :真诚的道歉,没有看到你在问题中说明包名。如果您决定使用 sqldf 包,创建条形图是对 barplot(height, ...)
函数的直接调用:
barplot(user_dates$num_of_users,names.arg=user_dates$effective_date)
另请注意,sql成功执行查询的结果是数据框而不是列表:
On success, a data frame (possibly with 0 rows) or character string. On error, if errors = TRUE a character vector of error message(s), otherwise an invisible integer error code -1 (general, call odbcGetErrMsg for details) or -2 (no data, which may not be an error as some SQL statements do return no data).
sqlQuery
上的帮助(我一般不使用ODBC)说返回"On success, a data frame…"。那意味着你应该能够做这样的事情:
barplot(barData$NumberOfUser, names.arg=barData$EFFECTIVE_DATE,
xlab="Effective Date", ylab="Number of Users")
但是将 dput(barData)
的输出发布到您的问题中确实可以更轻松地帮助您。