📌  相关文章
📜  如何根据 R DataFrame 中的现有行分配列名?

📅  最后修改于: 2022-05-13 01:54:34.754000             🧑  作者: Mango

如何根据 R DataFrame 中的现有行分配列名?

在本文中,我们将讨论如何在 R 编程语言中根据行为 DataFrame 分配列名或标题。

方法1:使用as。字符()方法

R 中的 unlist() 方法用于模拟列表到向量的转换。它通过保留所有组件简化了生成向量的过程。每个元素都与相应行中的每个值相同。作为。然后在此列表上连续应用字符() 方法,以单独解析其每个元素。作为。 字符试图将其参数强制转换为字符类型。因此,现有行被指定为数据帧的标题。然后可以将相应的行删除或保留到数据框中。

句法:

例子:



R
# 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)


R
# 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
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应用于它所应用的列表的每个相应元素的结果。

如果我们使用 as.字符作为FUN,那么数据框的变量,数据框的所有变量都会被转换为“字符”类。然后可以将标题或列名分配给数据帧的特定行。

例子

电阻

# 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