R语言基础-data.frame

data.frame比较像表格,每一列是一个向量,即每列中的元素是同一类型;所有列具有相同的长度。

x = 10:1
y = -4:5
q = c("Ha","oh","wow","yes","Noooo","wasami","cuckoo","sweet","candy","gloss")
df1 = data.frame(x,y,q)
# 创建时为各列设置名字
df2 = data.frame(first = x, second = y, haha = q)

nrow(df2)
ncol(df2)
# 得到行数,列数
dim(df2)
# names(df2)是列名字的列表,所以可以用索引方式访问
names(df2)[3]
# 获取行名。默认是数字。
rownames(df2)
# 修改。是向量。
rownames(df2) <- c("One","Two"........)
# 回到default的情况
rownames(df2) = NULL

head(df2)
# 显示前6行
head(df2, n = 6)
# 显示尾部
tail(df2)
# 访问单独的列,haha是列的名字
df2$haha
df2[3]
df2["haha"] 

# 访问单个元素,[row, col]
df2[3, 2]
# 同样可以用c(3,5),2:3这种方式写索引。
df2[c(3,5), 2:3]
# 不指定就是所有
df2[,2:3]

**************************************************************************这里不是很懂它们的区别。。。遇到再讲。******************************************************************

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码介绍了 R 语言如何向数据框添加新的观测,并且介绍了一些常见的错误和解决方法。 在第一个例子,d1 和 d2 是两个数据框,使用 rbind(d1, d2) 可以将它们按行拼接起来。这个例子的代码已经在上一个问题给出了。 在第二个例子,d2 是一个列表,而不是数据框。虽然 rbind() 函数可以接受列表作为参数,但是它会将列表的每个元素都视为一个单独的观测,而不是将它们拼接成一个完整的观测。因此,rbind(d1, d2) 的结果为: name age 1 Kim 22 2 Choi 27 3 Park 24 4 Lee 32 5 <NA> 23 6 <NA> 22 其最后两行的 name 列都是缺失值 NA。 在第三个例子,d1 的列名和 d2 的列名顺序不同,但是它们都是字符型的列。因此,在拼接之前需要将 d1 的字符串列设置为不转换为因子变量。这可以通过在创建数据框时设置 stringsAsFactors 参数为 FALSE 来实现。因此,正确的代码应该是: ``` d1 <- data.frame(name=c('Kim','Choi','Park','Lee'), age=c(22,27,24,32), stringsAsFactors = FALSE) d2 <- list(age=c(23,22), name=c('Yoo','Kang')) rbind(d1, d2) ``` 这个例子的结果为: name age 1 Kim 22 2 Choi 27 3 Park 24 4 Lee 32 5 Yoo 23 6 Kang 22 在第四个例子,d2 是一个矩阵,而不是数据框。虽然它的列名和 d1 的列名相同,但是它的类型不同。因此,在拼接之前需要将 d2 转换为数据框。可以使用 as.data.frame() 函数将矩阵转换为数据框。因此,正确的代码应该是: ``` d1 <- data.frame(x1=c(1,4,3), x2=1:3) d2 <- matrix(0, 2, 2) colnames(d2) = c('x1', 'x2') d3 <- rbind(d1, as.data.frame(d2)) class(d3) ``` 这个例子的结果为: ``` [1] "data.frame" ``` 这说明 d3 是一个数据框。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值