如何将数据帧转换为向量,该向量将在仅接受R中的一个参数的函数中用作参数

时间:2018-09-01 04:38:37

标签: r

我想使用XYZ2Lab包中的colorscience函数将XYZ转换为Lab色彩空间,但是该函数仅接受一个参数(一个包含三个数字的向量,该向量与c相连),并且我想转换一系列存储在数据框中的XYZ。我应该使用哪个函数将数据帧转换为XYZ2Lab可以不使用循环使用的向量?

xyzs <-structure(list(X = c(33.75, 30.56, 31.1, 26.3, 36.27, 33.44, 
31.85, 32.83, 33.49, 31.14), Y = c(34.94, 31.67, 31.93, 27.55, 
36.46, 33.64, 32.62, 34.41, 34.35, 31.67), Z = c(7.59, 7.26, 
8.39, 8.5, 8.77, 8.18, 8.87, 14.78, 9.8, 8.76)), class = "data.frame", 
row.names = c(NA, 10L))
colorscience::XYZ2Lab(xs) #could not be run.
#Error in XYZmatrix[, 1]/Rx : non-numeric argument to binary operator
xs <- some function (xyzs)??

colorscience::XYZ2Lab(xs)

1 个答案:

答案 0 :(得分:1)

没有转换和循环,

t(apply(xyzs,1,XYZ2Lab)) 

可以使用