2017-10-20 5 views
0

SQL Server Rサービスを使用していて、@ input_data_1にクエリを入力しています。結果のデータフレームは、列がvarcharの場合のデフォルトの要素です。文字データ型としての結果を得るには?SQL Server Rサービス - ファクタではなく文字でクエリ結果を返します

ストアドプロシージャ

CREATE PROCEDURE myProc 
AS 
EXEC sp_execute_external_script 
@language = N'R' 
,@script=N' 
df <- InputDataSet 
x <- str(df) 
OutputDataSet <- as.data.frame(x) 
' 
@input_data_1 = N'SELECT * FROM MyTable' 
--will result in factor data type for both col1 and col2. 

たMyTable

col1 (varchar) | col2 (varchar) 
------------------------------- 
    text1  | text4 
    text2  | text5 
    text3  | text6 
+0

あなたはas.characterを使用して変換することができますが、それは受け入れられる回答でしょうか? – User632716

+0

私はできますが、私はそれを1つ1つ行いたくありません。現在、私は約15の列を持っています。 – addicted

答えて

1

ここで再生可能な答えです。

多くの列があり、個別に変更したくない場合は、適用機能を使用する必要があります。

以下の例では、テーブルdf1(文字列を文字列として)を作成し、文字を係数(df2)に変換してdf3に戻します(これは興味がある部分です)。

library(tidyverse) 
df1 <- tribble(~col1, ~col2, 
       "text1", "text2", 
       "text3", "text6", 
       "text1", "text2" 
) 

df2 <- as.data.frame(sapply(X = df1, FUN = as.factor)) 

df3 <- as.data.frame(sapply(X = df2, FUN = as.character), stringsAsFactors=FALSE) 
関連する問題