2017-09-15 23 views
0

Rで関数を記述しています。これは、dataframeの要素の "y"クラスに割り当てられます。ここに私の関数があります。R:データフレームの要素の変数クラスへの割り当て

f=function(x,data) { 
    y=class(eval(substitute(x),data)) 
    print(y) 
} 

d=data.frame(a=1,b=2) 

f(a,d) 
[1] "numeric" 

class(eval(substitute(x)、data))の代わりに他のものを使用できますか?

+0

こんにちはマリーナ、あなたは、(同じではない)関数内の値を返しません。第二に、あなたは何を達成したいですか?あなたがしたいことを理解することは私にとってかなり不明です – Llopis

+0

私は別の方法と同じようにしたいと思います。 Yはデータフレームからの列のクラスでなければなりません。 – Marina

答えて

1

は、それはあなたが一般的なものであり、すべてのカラムに使用することができf()

f = function (x, data) { 
    y = lapply(data,class) 
    print(y[[x]]) 
} 

d <- data.frame (a=1, b=2) 

f("a",d) 

を使用する方法に若干の変更で...このように仕事ができます。

0

データフレームに添付された各列のクラスを新しい列にしたい場合。以下のコードを使用してください

library(dplyr) 
df = data.frame(a = c(1:3),b = c("A","B","C"), c = as.factor(c("G","H","H")),stringsAsFactors = F) 
class_df = lapply(df,class) %>% bind_rows() 
names(class_df) = paste0(names(class_df),"_class") 
df = cbind(df,class_df) 
関連する問題