我有多个数据框,想删除所有数据框的第一行。
我尝试过使用for循环,但无法理解我在做什么错
for (i in cities){
i <- i[-1, ]
}
我收到以下错误代码:
i [-1,]中的错误:维数错误
答案 0 :(得分:1)
假设您获得了环境中所有表的列表,然后将该列表称为cities
。您不能只遍历cities
的每个值并进行更改,因为在列表中它们只是字符。
这是您需要的:
for (i in cities){
tmp <- get(i) # load the actual table
tmp <- tmp[-1, ] # remove first column
assign(i, tmp) # re-assign table to original table name
}
答案 1 :(得分:1)
如果我们假设您的工作空间中唯一的对象是数据帧,那么这可能会成功:
{menuSideBar.map(menu => (
<Item
className={this.state.lastClicked === menu.id ? 'active' : ''}
onClick={() => {
this.setState({lastClicled: menu.id});
}}
button
/>
))}
说明:
原始代码有两件事:
在评论中已经提到了一个。 “ df”与cities <- objects() )
for (i in cities) { assign(i, get(i)[-1,])}
不同。您需要使用df
将字符值转换为用于检索具有该名称的对象的“ true” R名称。 get
的结果只是一个字符值。在R中,术语“名称”是指“语言对象”。请参阅帮助页面:object()
。 (行名称和列名称始终是“字符”类,这可能会造成混淆。)SAS不像SAS这样的宏语言,没有这种区别。
第二个错误是试图替换?mode
左侧的i
。即使使用实际的R名称,该操作也会失败。 <-
函数旨在处理字符值,然后将这些字符值转换为R名称。