根据因素从 R DataFrame 中提取行
在本文中,我们将讨论如何根据 R 编程语言中的因素从数据框中提取行。
方法 1:使用索引方法
可以使用其名称 (df$col-name) 或通过其索引 (df[[ col-indx ]]) 访问数据框列以访问特定列。通过使用 factor() 方法进行显式转换,数据框列可以包含作为因子的值。然后可以使用索引方法访问特定行。
句法:
df[ df$col-name == val , ]
满足此特定列条件值的行将作为输出返回。
例子:
R
# declaring a data frame
data_frame = data.frame(col1 = factor(c("A","z","z","c","e")),
col2 = factor(c(4:8)))
print ("Original dataframe")
print (data_frame)
sapply(data_frame , class)
# where column sum is greater than 10
data_frame_mod <- data_frame[data_frame$col1=="z",]
print ("Modified dataframe")
print (data_frame_mod)
sapply(data_frame_mod , class)
R
# declaring a data frame
data_frame = data.frame(col1 = factor(letters[1:5]),
col2 = factor(c(4:8)))
print ("Original dataframe")
print (data_frame)
sapply(data_frame , class)
# where column sum is greater than 10
data_frame_mod <- data_frame[data_frame$col2 %in% c(4 , 6),]
print ("Modified dataframe")
print (data_frame_mod)
sapply(data_frame_mod , class)
R
# declaring a data frame
data_frame = data.frame(col1 = factor(letters[1:5]),
col2 = factor(c(4:8)))
print ("Original dataframe")
print (data_frame)
sapply(data_frame , class)
# where column sum is greater than 10
data_frame_mod <- subset(data_frame, col2 %in% c(4 , 6))
print ("Modified dataframe")
print (data_frame_mod)
sapply(data_frame_mod , class)
输出
[1] "Original dataframe"
col1 col2
1 A 4
2 z 5
3 z 6
4 c 7
5 e 8
col1 col2
"factor" "factor"
[1] "Modified dataframe"
col1 col2
2 z 5
3 z 6
col1 col2
"factor" "factor"
也可以使用索引方法访问多个因子级别的行。还可以使用 %in%运算符针对包含值的向量验证因子列值,该运算符用于检查输入向量中遇到的值是否存在。如果该值包含在向量中,它会返回一个布尔值 TRUE。
句法:
val %in% vec
例子:
电阻
# declaring a data frame
data_frame = data.frame(col1 = factor(letters[1:5]),
col2 = factor(c(4:8)))
print ("Original dataframe")
print (data_frame)
sapply(data_frame , class)
# where column sum is greater than 10
data_frame_mod <- data_frame[data_frame$col2 %in% c(4 , 6),]
print ("Modified dataframe")
print (data_frame_mod)
sapply(data_frame_mod , class)
输出
[1] "Original dataframe"
col1 col2
1 a 4
2 b 5
3 c 6
4 d 7
5 e 8
col1 col2
"factor" "factor"
[1] "Modified dataframe"
col1 col2
1 a 4
3 c 6
col1 col2
"factor" "factor"
方法二:使用subset()方法
R 中的subset() 方法用于返回满足上述约束的行。使用此方法可以返回单个和多个因子水平。原始数据框中的行号按顺序保留。可以针对提到的条件验证因子列值。输出必须存储在变量中以保留更改。
句法:
subset ( df , condition )
条件可能包含逻辑运算符== 、 != 、 > 、 <运算符来比较列中包含的因子水平。
例子:
电阻
# declaring a data frame
data_frame = data.frame(col1 = factor(letters[1:5]),
col2 = factor(c(4:8)))
print ("Original dataframe")
print (data_frame)
sapply(data_frame , class)
# where column sum is greater than 10
data_frame_mod <- subset(data_frame, col2 %in% c(4 , 6))
print ("Modified dataframe")
print (data_frame_mod)
sapply(data_frame_mod , class)
输出
[1] "Original dataframe"
col1 col2
1 a 4
2 b 5
3 c 6
4 d 7
5 e 8
col1 col2
"factor" "factor"
[1] "Modified dataframe"
col1 col2
1 a 4
3 c 6
col1 col2
"factor" "factor"