繁体   English   中英

如何将矩阵的仅一行转换为向量,以便可以对其进行线性回归?

[英]How to turn just one row of a matrix into a vector so I can do a linear regression on it?

我正在尝试在R中做我的第一个项目,但是我不懂这种语言,所以在这里真的使我丧命。 这是我遇到过的最令人沮丧的事情,主要是因为似乎互联网上绝对没有地方可以迎合那些不懂得如何教您如何做事的人。

我正在尝试将所使用的数据作为RStudio的内置数据集之一进行线性回归。 这是我的代码行:

    lm(Income ~ Illiteracy, data=florida)

但是我一直想出这个错误:

model.frame.default中的错误(公式=收入〜文盲,数据=佛罗里达,:“数据”必须是data.frame,而不是矩阵或数组

(帮助我的朋友将state.x77重命名为“佛罗里达”)。

收到此错误并决定我希望在回归中分别对每个状态进行分析,还是希望至少对几个样本状态进行分析后,我决定我要对Florida行进行分析并将其转换为自己的向量。 但是,我不知道该怎么做。 我在该网站上不断看到建议,但是它们都是关于“命名”的事情,许多命令都带有“暗淡”的字眼,没有人解释。

请帮助我,我是一个完全的初学者,我有一本教科书,假设您知道R,而我又找到了一本“学习R”的书,以某种方式也假定您知道R

R具有用于处理数据集的几种数据结构。 matrix就是其中之一-它将您限制为单一类型的变量(通常为numeric ),并且必须具有矩形形状。

data.frame形状类似于矩阵,但是每一列可以是不同的类型(例如, numericcharacterfactor )。 这更接近于典型的数据集,在该数据集中混合了连续/数字,序数和分类/名义变量。

您可以通过输入?functionname (例如?lm并检查Arguments部分来检查功能需要哪种输入:

数据
包含模型中变量的可选数据框,列表或环境(或可通过as.data.frame强制转换为数据框的对象)。 如果在数据中找不到,则变量取自环境(公式),通常是调用lm的环境。

在尝试回归之前,您可以通过良好的入门课程来学习R的基本构成部分。 一个免费的选项是DataCamp的R简介 ,但还有很多其他选项。 一旦了解了R的不同变量类型,数据结构和语法,这些错误就很容易纠正。

在这种情况下,您只需要编写as.data.frame(florida)即可将matrix对象“强制”为data.frame对象。

如果要获取每个州的模型,请尝试以下操作

data(state)

state.x77 <- as.data.frame(state.x77)
state.x77$name <- rownames(state.x77)
mod_list <- list()
for (s in unique(rownames(state.x77))) {
    m <- lm(Income ~ Illiteracy, data = subset(state.x77, name == s))
    mod_list <- c(mod_list, list(mod = m))
}
names(mod_list) <- unique(rownames(state.x77))

为了使文盲到收入线性回归,您应该执行以下操作:

lm(Income ~ Illiteracy, data=as.data.frame(state.x77))

因为lm接受数据帧,而不是矩阵。

帮助我的朋友将state.x77重命名为“佛罗里达”

我不知道他或她为什么要这么做。 state.x77是50个不同状态的8个参数的数据。 佛罗里达只是其中之一,所以为什么他在地球上会称其为“佛罗里达”? 假设您有一个200个不同国家的人口和收入数据集。 因为印度是数据集中的国家之一,您会称其为“印度”吗?

收到此错误并决定我宁愿在回归中分别做每个状态

您不能“在回归中单独设置状态”。 并不是说您不能在R中做到这一点,您根本无法做到,因为它在数学上是荒谬的。 佛罗里达州(按此矩阵)人口为4815,文盲率为1.3。 您如何在两个数字之间进行回归? 这很荒谬。

我决定要选择佛罗里达行并将其转换为自己的向量以进行分析。

您可以参加佛罗里达行:

foo <- state.x77["Florida",]

现在foo是Florida的8个参数的向量,但是您可以使用它做什么呢?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM