6

私は R に非常に慣れていないので、関数がどのように作成されるかを知りたいです。

私が持っているかどうか言ってください:

> colourName
 [1] "red" "green" "blue" "yellow" "white" "black"

 #Which the following colours equal something like this:
 #red = 1
 #green = 2
 #blue = 3 
 #yellow = 4
 #white = 5
 #black = 6

myColour()結果が数値ベクトルとして返される関数を作成するにはどうすればよいですか?

したがって、次のように入力すると、次のようになります。

> myColour("yellow")
[1] 4    

助けてください..

私のコード(しかし、それは間違っています!)

colourName<-c("red", "green", "blue", "yellow", "white", "black")
data <- c(1,2,3,4,5,6)

myFunction <- function(colour){
colourName = data
return(colour)
}
myFunction("red")

関数として作成できる方法はありますか?

4

4 に答える 4

6

名前付きベクターで色を検索できます。これは、効率的に行うことができます...

x <- setNames( seq_along( colourName ) , colourName )
#red  green   blue yellow  white  black 
#  1      2      3      4      5      6 

x[ 'red' ]
#red
#  1 

ここで関数を使用するのはあまり良いことではないように思えますが、必要に応じて、色のベクトルとルックアップ値を受け取るこのような単純なルックアップ関数を作成できます (ただし、単にwhich!!を使用することもできます)。 )...

myFunction <- function( colours , x){
  y <- which( colours %in% x )
  if( length(y) == 0L )
    y <- "Colour not found"
  return( y )
}

myFunction( colourName , "red")
[1] 1

#  Using R's inbuilt colour names
myFunction( colours() , "purple")
[1] 547
于 2013-10-25T08:30:49.583 に答える