Adata.frame是一种特殊的列表:它是矩形。列表的每个元素(列)具有相同的长度,并且每一行都有一个“行名”。每个列都有其自己的类,但是一个列的类可以与另一列的类不同(与矩阵不同,在矩阵中,所有元素都必须具有相同的类)。
原则上,adata.frame可以没有行也没有列:
> structure(list(character()), class = "data.frame") NULL <0 rows> (or 0-length row.names)
但这是不寻常的。data.frame有许多列和许多行是更常见的。这是一个data.frame具有三行两列的(a数字类和b字符类):
> structure(list(a = 1:3, b = letters[1:3]), class = "data.frame") [1] a b <0 rows> (or 0-length row.names)
为了data.frame打印,我们将需要提供一些行名。在这里,我们仅使用数字1:3:
> structure(list(a = 1:3, b = letters[1:3]), class = "data.frame",row.names= 1:3) a b 1 1 a 2 2 b 3 3 c
现在很明显,我们有一个data.frame3行2列的。您可以检查此使用nrow(),ncol()以及dim():
> x <- structure(list(a = numeric(3), b = character(3)), class = "data.frame",row.names= 1:3) > nrow(x) [1] 3 > ncol(x) [1] 2 > dim(x) [1] 3 2
R提供了另外两个structure()可用于创建data.frame的函数(之外)。第一个直观地称为。它检查以确保您提供的列名有效,列表元素的长度均相同,并提供一些自动生成的行名。这意味着现在的输出可能始终与您期望的一样:data.frame()data.frame()
> str(data.frame("a a a" = numeric(3), "b-b-b" = character(3))) 'data.frame': 3 obs. of 2 variables: $ a.a.a: num 0 0 0 $ b.b.b: Factor w/ 1 level "": 1 1 1
另一个功能称为。通过将其运行,可以将非a的对象强制为a 。例如,考虑一个矩阵:as.data.frame()data.framedata.framedata.frame()
> m <- matrix(letters[1:9], nrow = 3) > m [,1] [,2] [,3] [1,] "a" "d" "g" [2,] "b" "e" "h" [3,] "c" "f" "i"
结果:
> as.data.frame(m) V1 V2 V3 1 a d g 2 b e h 3 c f i > str(as.data.frame(m)) 'data.frame': 3 obs. of 3 variables: $ V1: Factor w/ 3 levels "a","b","c": 1 2 3 $ V2: Factor w/ 3 levels "d","e","f": 1 2 3 $ V3: Factor w/ 3 levels "g","h","i": 1 2 3
本文向大家介绍R创建一个数据表,包括了R创建一个数据表的使用技巧和注意事项,需要的朋友参考一下 示例 Adata.table是data.frame从R开始的类的增强版本。同样,它的class()属性是向量"data.table" "data.frame",在a上起作用的函数也data.frame将与data.table一起工作。有很多方法可以创建,加载或强制执行data.table。 建立 不要忘
问题内容: 我一直在阅读和谷歌搜索,但似乎找不到这个简单的答案。 我有一个读取文件的功能,但是如果文件不存在,则会出现混乱。我想做的是一个函数,该函数在读取之前会检查文件是否存在,如果不存在,则会创建一个空文件。这就是我所拥有的。 问题答案: 不要尝试先检查是否存在,因为如果同时创建了文件,那么您将面临一场竞赛。您可以打开带有标志的文件以创建该文件(如果不存在):
问题内容: 现在我用 但这有点棘手。是否有“标准”方法在Node.js中创建空文件? 问题答案: 如果要强制文件为空,则要改用标志: 如果文件存在,它将截断文件,如果文件不存在,则将创建文件。 如果不需要返回的文件描述符,则将其包装在调用中。
问题内容: 在Python中创建新的空列表的最佳方法是什么? 要么 我之所以这样问是因为两个原因: 技术原因,关于哪个更快。(创建一个类会导致开销吗?) 代码可读性-这是标准约定。 问题答案: 您可以通过以下方法测试哪段代码更快: 但是,实际上,这种初始化很可能只是程序的一小部分,因此担心此初始化可能会出错。 可读性非常主观。我更喜欢,但是像AlexMartelli这样的一些非常博学的人更喜欢,因
如何创建一个可以容纳10个元素的空列表? 之后,我想在该列表中分配值。例如: 但是,这会导致<code>索引器:列表分配索引超出范围。为什么? 在Python中,列表没有设置的容量,但不可能分配给尚未存在的元素。这里的答案显示了创建一个包含10个“伪”元素的列表的代码,以便稍后替换。然而,大多数遇到这个问题的初学者实际上只是想通过向列表中添加元素来构建列表。这应该使用方法,尽管通常会有特定于问题的
下面是我的代码: 我想用一个新的测试列创建一个空的dataframe,该列是空的,并调用“exp”