Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的数据是如何存储在R中的?_R - Fatal编程技术网

我的数据是如何存储在R中的?

我的数据是如何存储在R中的?,r,R,因此,我试图找出一个更大的问题,我认为这可能正是我从.txt文件导入数据时发生的事情造成的。我的常规开始命令是: data<-read.table("mydata.txt",header=T) attach(data) 完美-现在假设原始数据帧有100行,其中5行有一个空插槽。我的新数据框应该有95行,对吗?如果我尝试: > length(Var1) [1] 100 > length(data$Var1) [1] 95 因此,标签为Var1的原始列似乎不受我重写整个数据帧的

因此,我试图找出一个更大的问题,我认为这可能正是我从
.txt
文件导入数据时发生的事情造成的。我的常规开始命令是:

data<-read.table("mydata.txt",header=T)
attach(data)
完美-现在假设原始数据帧有100行,其中5行有一个空插槽。我的新数据框应该有95行,对吗?如果我尝试:

> length(Var1)
[1] 100
> length(data$Var1)
[1] 95
因此,标签为
Var1
的原始列似乎不受我重写整个数据帧的行的影响。这就是为什么我认为当我导入数据时,我实际上只在某个地方存储了3个单独的列,分别称为
Var1
Var2
Var3
。为了让R认识到我想要修改专栏的版本,我认为我需要做一些事情:

Var1 <- data$Var1 #Repeat for every variable

Var1我很确定R会逐行读取文件。(事实上,我认为几乎所有的编程语言都是这样工作的。)我想知道您是否在删除不完整的案例之前附加了数据帧。当人们事先调用
attach(data)
时,您描述的行为相当典型。通常,建议您在R中完全不要使用
attach()
。但如果必须使用它,请先调用
detach(data)
,然后修改数据框,然后(如果必须)再次调用
attach(data)
。在这一点上,您将不再有这个问题

请注意,您的问题也可能与此不同。然而,根据迄今为止提供的信息,我们无法判断。您希望提供一个可复制的示例,以便人们能够更有效地帮助您,请参见此处:.

read.table()
将数据读取到数据框中,其中包含文本文件中每列(变量)的组件(列)。R的数据框架类似于Excel电子表格,工作表中的每一列都可以包含不同类型的数据(与矩阵相比,矩阵在R中只能包含单一类型的数据)

实际上,结果就好像数据是逐列读取的,然后使用
cbind.data.frame()
方法按列绑定在一起。然而,在实践中并非如此。您有一个包含三个组件的单一对象
数据
,通过键入它们的名称(例如
Var1
)无法访问其中任何一个组件。试试这个


data“请勿使用
attach()
”大致概括了一下。好的,我尝试删除了我的attach()行,但问题仍然存在。我读过一篇关于不使用attach()而是使用data=my.data作为参数来避免使用my.data$Var1的好文章。当我在biostats课程中学习R时,他们总是使用attach(),所以现在我知道得更多了!关于生成可复制的代码,我尽了最大努力,但我不知道如何从头开始在r中生成数据帧。我将在第二条评论中解释。我试过:
xI感谢您的努力,@darcy.mulder。我知道课程经常教授
attach()
命令。它可能有用,但也很危险;它经常让人绊倒,我想这就是发生在你身上的事。至于删除您的
attach()
行,如果您已经运行了它,这将不会有帮助。尝试使用
detach()
等我概述的策略。我清除了我的工作区(使用RStudio),运行了
detach()
代码,现在我不能简单地调用
Var1
。现在我明白了
attach()
的作用-它允许我调用附加数据帧的列。因此,如果我不附加数据,我不能直接调用
Var1
,但我需要指定
data$Var1
。我怀疑这就是为什么我被教使用
attach()
+1,这是一个很好的解释方法。实际上,我只是在一条评论中加入了类似的内容,使用了硬拷贝与
.doc
文件的类比。
Var1 <- data$Var1 #Repeat for every variable
data <- read.table("mydata.txt", header = TRUE)
Var1