R语言 如何在R数据框架中基于现有行分配列名
在这篇文章中,我们将讨论如何在R编程语言中基于行给DataFrame分配列名或标题。
方法1:使用 as.character() 方法
R语言中的unlist()方法是用来模拟列表到矢量的转换。它通过保留所有组件简化了向量的产生。每个元素都与相应行中的每个值相同。然后,as.character()方法被连续应用于这个列表,对其每个元素进行单独出发。as.character试图将其参数胁迫为字符类型。因此,现有的行被分配为数据帧的头。然后,相应的行可以被删除或保留到数据框中。
语法 。
unlist(list)
例子 。
# creating a data frame
data_frame = data.frame(col1=c(1,2,3,-4),
col2=c(8,9,5,10),
col3=c(0,2,3,5))
# printing original data frame
print("Original Data Frame")
print (data_frame)
# second row of the data frame is
# assigned as the column name
colnames(data_frame) <- as.character(unlist(data_frame[2,]))
# second row is then deleted from
# the data frame
data_frame = data_frame[-2, ]
print("Modified Data Frame")
print(data_frame)
输出
[1] "Original Data Frame"
col1 col2 col3
1 1 8 0
2 2 9 2
3 3 5 3
4 -4 10 5
[1] "Modified Data Frame"
2 9 2
1 1 8 0
3 3 5 3
4 -4 10 5
方法2:使用 lapply() 方法
R中的lapply()函数,返回一个与输入列表对象相同长度的列表,其中的每个元素都是将 FUN 应用于列表中每个相应元素的结果。
语法: lapply(X, FUN, …)
参数:
- X – 数据框或矩阵
- FUN – R中的任何函数都可以被指定为第二个参数,其中内置的和用户定义的函数都可以使用。
如果我们使用as.character作为FUN,那么数据框的变量,数据框的所有变量将被转换为 “字符 “类。然后,标题或colnames可以被分配给数据框的特定行。
例子
# creating a data frame
data_frame = data.frame(col1=c(1,-2,3,-4),
col2=c(8,9,5,10),
col3=c(0,2,3,5),
col4=c(1.5,4.5,6.7,8.9))
# printing original data frame
print("Original Data Frame")
print (data_frame)
# apply row4 as the header
data_frame[] <- lapply(data_frame, as.character)
colnames(data_frame) <- data_frame[4, ]
print("Modified Data Frame")
print(data_frame)
输出
[1] "Original Data Frame"
col1 col2 col3 col4
1 1 8 0 1.5
2 -2 9 2 4.5
3 3 5 3 6.7
4 -4 10 5 8.9
[1] "Modified Data Frame"
-4 10 5 8.9
1 1 8 0 1.5
2 -2 9 2 4.5
3 3 5 3 6.7
4 -4 10 5 8.9