如何像R中的汽油数据一样格式化数据帧

如何像R中的汽油数据一样格式化数据帧,r,dataframe,R,Dataframe,我正在尝试使用pls软件包来分析我在R中的数据。 我的数据类似于汽油数据,我的数据包含许多列紫外线数据(不同波长)和一列明矾数据。汽油数据包含数字向量(辛烷值)和401列矩阵(NIR)。NIR数据似乎被视为一个整体。 我想像汽油数据一样格式化我的数据,并使用如下类似的代码 library(pls) data("gasoline") gas1 <- plsr(octane ~ NIR, ncomp = 10, data = gasTrain, validation = "LOO") dpu

我正在尝试使用
pls
软件包来分析我在R中的数据。 我的数据类似于汽油数据,我的数据包含许多列紫外线数据(不同波长)和一列明矾数据。汽油数据包含数字向量(辛烷值)和401列矩阵(NIR)。NIR数据似乎被视为一个整体。 我想像汽油数据一样格式化我的数据,并使用如下类似的代码

library(pls)
data("gasoline")
gas1 <- plsr(octane ~ NIR, ncomp = 10, data = gasTrain, validation = "LOO")
dput(head(Data))

structure(list(`UV. 200 nm` = c(35.0310061349693, 34.5507472222222, 
34.3612970711297, 33.942698457223, 33.7440041666667, 33.5717955493741
), `UV. 222.5 nm` = c(34.3149110429448, 33.8141833333333, 33.6073877266388, 
33.181190743338, 32.9606347222222, 32.7796870653686), `UV. 225 nm` = c(33.4781748466258, 
32.9576319444444, 32.7334881450488, 32.2993730715287, 32.0620333333333, 
31.870173852573), `UV. 227.5 nm` = c(32.7270429447853, 32.1803916666667, 
31.9470181311018, 31.5060967741936, 31.2553597222222, 31.0520792767733
), `UV. 230 nm` = c(32.0851104294479, 31.5236361111111, 31.2877782426778, 
30.8468849929874, 30.586125, 30.3832002781641), `UV. 232.5 nm` = c(31.1708558282209, 
30.6077847222222, 30.3719414225941, 29.9375497896213, 29.6742291666667, 
29.4762865090403), Alum = c(76.000324025669, 75.95384102484, 
75.9992186218653, 75.9955211469609, 75.9996022222152, 76.0093745773557
)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"
))

您可以将数据作为矩阵保存在plsr中。无需将其转换为与汽油相同的

例如,对于共享的数据,您可以使用以下内容:

library(pls)
gas1 <- plsr(Alum~as.matrix(data[-7]), data = data)
库(pls)

gas1您可以将数据作为矩阵保存在plsr中。无需将其转换为与汽油相同的

例如,对于共享的数据,您可以使用以下内容:

library(pls)
gas1 <- plsr(Alum~as.matrix(data[-7]), data = data)
库(pls)

gas1除了@Ronak Shah的答案之外,您还可以使用更通用的代码来实现

library(pls)
data("gasoline")
gas1 <- plsr(octane ~ ., ncomp = 10, data = gasoline, validation = "LOO") 
同样,对于数据集,可以使用以下代码

pls.fit <- plsr(Alum~., ncomp = 2, data = df, validation = "LOO")

希望这对您有所帮助。

除了@Ronak Shah的答案之外,您还可以使用更通用的代码来实现

library(pls)
data("gasoline")
gas1 <- plsr(octane ~ ., ncomp = 10, data = gasoline, validation = "LOO") 
同样,对于数据集,可以使用以下代码

pls.fit <- plsr(Alum~., ncomp = 2, data = df, validation = "LOO")

希望这对您有所帮助。

pls帮助文件建议在第4.2节“数据帧”中创建类似汽油的结构。如果要执行此操作,请在文本文件中使用示例矩阵的第一行:

然后使用以下示例代码。多列矩阵应通过“保护函数”I()进行保护


Datapls帮助文件建议在第4.2节“数据帧”中创建类似汽油的结构。如果要执行此操作,请在文本文件中使用示例矩阵的第一行:

然后使用以下示例代码。多列矩阵应通过“保护函数”I()进行保护


数据我们需要一个[最小可复制示例][1]来帮助您。[1] :Hello@Linda,请在控制台中键入
dput(头部(汽油))
并复制您问题中的输出,以便我们能够理解您需要的数据帧。汽油数据从R中的pls包中获得。我想通过以下示例代码对汽油数据应用plsr,对我的数据(UV数据和明矾数据)应用plsr。我对R还是新手,不知道其他的方法。@Ronaksah,@Desmond@Alexis,非常感谢你的建议。我已经编辑了这个问题,希望它现在更清楚。我在数据上使用了dput函数并显示了输出。我们需要一个[最小可复制示例][1]来帮助您。[1] :Hello@Linda,请在控制台中键入
dput(头部(汽油))
并复制您问题中的输出,以便我们能够理解您需要的数据帧。汽油数据从R中的pls包中获得。我想通过以下示例代码对汽油数据应用plsr,对我的数据(UV数据和明矾数据)应用plsr。我对R还是新手,不知道其他的方法。@Ronaksah,@Desmond@Alexis,非常感谢你的建议。我已经编辑了这个问题,希望它现在更清楚。我在我的数据上使用了dput函数并显示了输出。非常感谢,这非常有帮助!:)@巴帕Das@Linda如果它已经回答了您的问题,那么请接受它作为一个答案。非常感谢,它非常有用!:)@巴帕Das@Linda如果它已经回答了你的问题,那么就接受它作为一个答案。
Data <- as.data.frame(read.csv(dataFile, header=TRUE, sep="\t", check.names = FALSE))
UV = as.matrix(Data[,1:6])
Alum = Data[,7]
df1 <- data.frame(I(UV), Alum)