The postHow to Rename Column (or Columns) in R with dplyrappeared first onErik Marsja.
在这个数据科学教程中,你将学习如何使用基础函数以及dplyr在R中重命名一个列(或多个列)。在R中重命名列是一项非常容易的任务,特别是使用rename() 。现在,用dplyr和rename() 函数重命名一个列是超级简单的。但是,当然,使用基础R来改变列名也不是超级困难的。
如何在R中重命名列
现在,在有些情况下,你需要摆脱奇怪的列名,如 "x1"、"x2"、"x3"。如果我们遇到这样的数据,可能需要清理我们的数据框架中的变量名称,这无疑会使工作更具可读性。 这一点非常重要,特别是在我们与他人一起工作或与他人分享数据的情况下。如果我们计划将数据在资源库中开放,那么列名有明确的名称也是非常重要的。
大纲
这篇文章的大纲如下。首先,你将了解本帖的要求。在你知道遵循本教程需要什么之后,你将得到两个问题的答案。在常见问题之后的部分,我们将加载一个例子的数据集来工作。这里我们将使用readxl包读取一个Excel文件。当我们成功地将数据导入到R中时,我们就可以开始改变oclumns的名称。首先,我们将从使用几个技术开始,这些技术可以使用基础R来完成。具体来说,在这一节中,我们将使用rename-family函数来改变数据框中一些变量的名称。也就是说,我们将使用rename() ,和rename_with().
现在,在进入下一节之前,值得一提的是,我们可以使用dplyr来选择列以及删除R中的列。
要求
要学习这篇文章,你需要安装R以及readxl和dplyr软件包。如果你想安装这两个包,你可以使用install.packages() 功能。下面是如何安装readxl和dplyr:install.packages(c('dplyr', 'readxl') 。
这里值得指出的是,这两个软件包都是Tidyverse的一部分。这意味着你可以通过输入install.packages('tidyverse') 来安装它们,以及其他一些伟大的软件包。
我如何在R中重命名一个列?
你可以在R中以多种方式重命名一个列。例如,如果你想把名为 "A "的列重命名为 "B",你可以使用以下代码。names(dataframe)[names(dataframe)=="A"] <- "B".这样,你就把列名改为 "B"。
如何在R中重命名dplyr中的一个列?
要在R中重命名一个列,你可以使用dplyr中的rename() 函数。例如,如果你想把列 "A "重命名为 "B",同样,你可以运行以下代码。rename(dataframe, B = A).
{ "@context":"schema.org", "@type":"FAQPage", "mainEntity":[{ "@类型":"问题", "名称":"我如何在R中重命名一个列?", "acceptedAnswer":{ "@type":"答案", "文本":"你可以在R中以多种方式重命名一个列。例如,如果你想把名为 "A\"的列重命名为 "B\",你可以使用这样的代码:<code>names(dataframe)[names(dataframe)=="A\"] <- \"B"</code>。这样你就把列名改成了 "B"。" , "image" : { "@type" : "ImageObject", "contentUrl" : "www.marsja.se/wp-content/…" } } , { "@type" :"问题", "名称":"我如何在R中重命名dplyr中的列?", "acceptedAnswer":{ "@type":"答案", "文本":"要在R中重命名一个列,你可以使用dplyr的<code>rename()</code>函数。例如,如果你想把列 \"A\"重命名为 \"B\",同样,你可以运行以下代码: <code>rename(dataframe, B = A)</code>。" } } ] }
就这样,我们准备练习如何在R中改变列名。然而,首先,我们需要一些数据,我们可以在上面练习。在下一节中,我们将通过读取一个.xlsx文件来导入数据。
示例数据。读取一个Excel文件
下面是我们如何用readxl包在R中读取一个.xlsx文件。
library(readxl) titanic_df <- read_excel('titanic.xlsx')
Code language: R (r)
在上面的代码块中,我们首先加载库readxl,然后使用read_excel() 函数来读取titanic.xlsx文件。这里是这个数据框架的前6行。
在下一节中,我们将首先使用基础功能在R中重命名一个列。
用R基础功能重命名列 例1:使用列索引
下面是如何用R基础重命名一个单列。
names(titanic_df)[1] <- 'P_Class'
Code language: JavaScript (javascript)
在上面的代码块中,我们使用names()n函数为数据框架中的第一列分配了一个新的名字。具体来说,使用names()n函数,我们得到了数据框架中所有的列名,然后我们使用括号选择了第一列。最后,我们使用<- 和字符'P_Class'(新名称)来分配新的列aneme。注意,你当然可以使用上述同样的方法重命名数据框架中的多个列。只要改变你放在括号内的内容。例如,如果你想重命名第1至5列,你可以在括号内填入 "1:5",然后填入一个包含5列名称的字符向量。
在下一个例子中,我们将使用旧的列名来重命名列。
用Base R重命名列 例2:使用列名
下面是如何在选择列名时使用旧的列名来改变它。
names(titanic_df)[names(titanic_df) == 'P_Class'] <- "PCLASS'
Code language: JavaScript (javascript)
在上面的代码块中,我们做了与第一种方法相当类似的事情。然而,在这里,我们选择了我们之前用它的名字重新命名的列。这就是我们在括号内所做的。注意我们是如何,再次使用名称和==来选择名为 "P_Class "的列。这是输出结果(新的列名用红色标记)。
在下一个例子中,你将学习如何使用Base R重命名多个列。事实上,我们将重命名数据框中的所有列。
用Base R重命名所有列 例3
重命名所有列的方法与上一个例子类似。下面是我们如何改变R数据框中的所有列。
names(titanic_df) <- c('PC', 'SURV', 'NAM', 'Gender', 'Age', 'SiblingsSPouses', 'ParentChildren', 'Tick', 'Cost', 'Cab', 'Embarked', 'Boat', 'Body', 'Home')
Code language: R (r)
改变所有列的名称
注意我们在上面的代码中只使用了names() 。这里值得注意的是,如果字符向量(<-的右边)应该包含和列名一样多的元素。否则,一个或多个列将被命名为 "NA"。此外,你还需要知道各列的顺序。 在接下来的几个例子中,我们将使用dplyr和rename-family函数来工作。
你可能也会对以下内容感兴趣。如何在R中使用$。6个例子 - 列表和数据框架
如何在R中用Dplyr重命名一列
在Dplyr中重命名一个列是非常简单的。下面是如何改变一个列的名称。
titanic_df <- titanic_df %>% rename(pc_class = PC)
Code language: R (r)
在上面的代码块中,有一些新的东西需要我们去处理。首先,我们从导入dplyr开始。其次,我们使用rename() 函数来改变数据框架中的名称。注意我们是如何使用%>%操作符的。这是非常方便的,因为我们在这之后使用的函数将应用于操作符左边的数据框架。第三,我们使用带有一个参数的rename() 函数:我们想要重命名的列。关于R中另一个方便的运算符的博文。
记住,我们在前面的例子中重命名了所有的列。在上面的代码块中,我们实际上是将列再次改回。也就是说,在=的左边是新的列名,右边是旧的名称。正如你将在下一个例子中看到的,我们可以通过添加参数来重命名数据框架中的多个列。
值得一提的是,我们可以用dplyr来重命名R中的因子水平,并向数据框架中添加一个列。然而,在下一节中,我们将用dplyr来重命名R中的列。
如何用dplyr rename()改变R中列的名称
另一方面,如果我们想改变多个列的名称,我们可以按以下方式进行。
titanic_df <- titanic_df %>% rename(Survival = SURV, Name = NAM, Sibsp = SiblingsSPouses)
Code language: R (r)
使用dplyr的ename()函数来改变多列的名称是很简单的。正如你所看到的,在上面的代码块中,我们只是添加了我们想要改变名称的每一列。同样,等号右边的名字是旧的列名。这里是数据框架的前6列和行,新的列名用红色标记。
重新命名的三列
在下面的章节中,我们将使用rename_with() 函数。这是一个伟大的函数,它使我们能够,正如你将看到的,将列名改为大写或小写。
如何用dplyr rename_with()将所有列名改为小写?
下面是我们如何使用rename_with() 函数(dplyr)将所有列名改为小写。
titanic_df <- titanic_df %>% rename_with(tolower)
Code language: R (r)
在上面的代码块中,我们使用了rename_with() 函数,然后又使用了tolower() 函数。这个函数被应用在所有的列名上,得到的数据框架看起来像这样。
列名改成小写
在下一个例子中,我们将使用rename_with() 函数和toupper() 函数将列名改为大写。
如何使用dplyr的rename_with()将所有列名改为大写?
在这一节中,我们将只是改变我们在rename_with() 中作为唯一参数使用的函数。这将使我们能够将所有的列名改为大写字母。
titanic_df <- titanic_df %>% rename_with(toupper)
Code language: R (r)
这里是前6行,现在所有的列名都是大写字母。
在下一节中,我们将继续使用rename_with()函数,看看我们如何使用其他函数来清除列名中不需要的字符。例如,我们可以使用gsub()函数来删除列名中的标点符号。
如何通过删除标点符号重命名列名
在某些情况下,我们的列名可能包含一些我们并不真正需要的字符。下面是如何使用来自dplyr的rename_with() 和gsub() ,从R数据框架的所有列名中去除标点符号。
titanic_df <- titanic_df %>% rename_with(~ gsub('[[:punct:]]', '', .x))
Code language: JavaScript (javascript)
注意我们是如何在gsub()函数前添加了斜体符号(~)的。 此外,第一个参数是标点符号的正则表达式,第二个参数是我们想用什么来删除它。在我们的例子中,在这里,我们只是从列名中删除它。然而,如果我们想替换列名中的标点符号,我们可以添加像下划线("_")。 最后,如果我们想替换特定的字符,我们也可以添加它们,而不是标点符号的正则表达式。
现在,你已经重新命名了需要更好、更清晰名称的列,你可以继续进行数据预处理。例如,你可以用dplyr根据其他列在数据框架中添加一个列, 计算描述性统计(也是用dplyr),在你的R数据框架中取绝对值,或者删除数据框架中重复的行或列。
总结。用Base R和dplyr重命名列
在本教程中,你已经学会了如何使用Base R以及dplyr。首先,你学会了如何使用基础函数来改变基于索引和名称的单列的列名。其次,你学会了如何用dplyr和rename函数做同样的事情。在这里,我们还重命名了多个列,并删除了列名中的标点符号。 希望你觉得这个帖子有用。如果你做到了,请在你的社交媒体账户上分享它,并在你的项目中链接到它。最后,如果你对特定的帖子有任何更正或建议,无论是对这个帖子还是对这个博客应该涵盖的一般内容,请让我知道。
The postHow to Rename Column (or Columns) in R with dplyrappeared first onErik Marsja.