如何根据 R DataFrame 中的现有行分配列名?
在本文中,我们将讨论如何在 R 编程语言中根据行为 DataFrame 分配列名或标题。
方法1:使用as。字符()方法
R 中的 unlist() 方法用于模拟列表到向量的转换。它通过保留所有组件简化了生成向量的过程。每个元素都与相应行中的每个值相同。作为。然后在此列表上连续应用字符() 方法,以单独解析其每个元素。作为。 字符试图将其参数强制转换为字符类型。因此,现有行被指定为数据帧的标题。然后可以将相应的行删除或保留到数据框中。
句法:
unlist(list)
例子:
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应用于它所应用的列表的每个相应元素的结果。
Syntax: lapply(X, FUN, …)
Parameter :
- X – The data frame or matrix
- FUN – Any function in R can be specified as the second argument where in both in-built and user defined functions can be used.
如果我们使用 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