首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Names()函数删除CSV

使用Names()函数删除CSV
EN

Stack Overflow用户
提问于 2021-11-23 19:17:46
回答 2查看 43关注 0票数 0

我正在执行编程任务,并有以下代码段,这些代码段应该为我所使用的数据提供上下文:

代码语言:javascript
复制
d <- read.csv(file='data6a.csv') # read and display data from CSV
d 

以下是显示的内容:

代码语言:javascript
复制
d = str(d)
d$colname=as.factor(d$colname)

这个问题出现在这里。分配给了我这行代码来将列x11重命名为y:

代码语言:javascript
复制
names(d)[names(d) == 'old.var.name'] <- 'new.var.name'

我已经将代码做了如下修改:

代码语言:javascript
复制
names(d)[names(d) == 'x11'] <- 'y'

但是,当我检查以str(d)作为赋值指示更新列名时,将得到以下输出:

1的

列表

$ colname:因子w/ 0级别:

这看起来非常简单,但我不知道为什么会发生这种情况。除了我修改的那一节外,这段代码基本上是给我的。如果有人能给我指明正确的方向,那就太好了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-23 19:51:20

由于@akrun的帮助,这个问题得到了确认。

执行d = str(d)时,d设置为null,因为str()不返回任何内容。

将代码更改为以下代码仍然存在问题:

代码语言:javascript
复制
str(d)
d$colname=as.factor(d$colname)

当它返回时:

$<-.data.frame中的错误(_tmp_,colname,value =整型(0)):>替换有0行,数据有394行

因为这个赋值要求我将每个分类变量重新定义为一个因素,所以我们不能跳过该段,只需使用names(d)[names(d) == 'x11'] <- 'y.`更改列名。

对我有效的解决办法如下:

代码语言:javascript
复制
temp = str(d)
temp$colname=as.factor(temp$colname)

上面的代码将分类列显示为变量temp中的因素,因此我们可以将行names(d)[names(d) == 'x11'] <- 'y'应用于原来的d

票数 0
EN

Stack Overflow用户

发布于 2021-11-23 19:43:45

从分配d <-str(d)开始,事情变得很混乱,因为str将返回输出的摘要,但不应该分配给对象,从那一点开始,d不再是一个数据格式了。

只需按以下方式运行代码

代码语言:javascript
复制
d <- read.csv(file='data6a.csv')
names(d)[names(d) == 'x11'] <- 'y'

如果您想查看数据,只需运行str(d),但不要将其分配给任何东西

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70086640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档