从下面的数据集中:
Referee Tca
1 A D'Urso 2.733333
2 A Davies 3.529412
3 A Haines 2.722222
4 A Madley 3.407407
5 A Marriner 3.640000
6 A Taylor 3.603448
7 A Woolmer 3.222222
8 B Malone 1.636364
9 C Berry 3.800000
10 C Boyeson 3.800000
我正在尝试创建一个简单的循环,通过Tca>为我提供裁判的名字。 4。
循环代码是:
test <- NULL
for (i in c(1:length(gio$Referee))) {
if(gio$Tca[i] > 4){
test[i] <- gio$Referee[i]
}
}
但是这不会返回一个名单列表,而是一个索引列表:
我如何获得裁判列表而不是索引?
答案 0 :(得分:1)
你可以尝试
<local:WeatherEnumValues x:Key="WeatherEnumValues" />
(我在这里选择了"{Binding whatever, Converter={StaticResource converterName},
ConverterParameter={Binding Hot, Source={StaticResource WeatherEnumValues}}}" />
,因为您的标准as.character(with(gio,Referee[Tca>3]))
[1] "A Davies" "A Madley" "A Marriner" "A Taylor" "A Woolmer" "C Berry" "C Boyeson"
会产生带有给定样本数据的空向量。
数据强>
Tca > 3
答案 1 :(得分:0)
调用你的数据帧df你可以简单地使用dplyr,过滤你的df做这样的事情:
library(dplyr)
filtered_df = filter(df, Tca > 4)
答案 2 :(得分:0)
因为引用因子变量会给出因子级别而不是因子值
您获取索引而不是名称的原因是因为gio$Referee
被存储为因子,当您使用factor[any index]
引用因子时,您获得的是索引,而不是因子值。
要使系数值附加as.character
test <- NULL
for (i in c(1:length(gio$Referee))) {
if(gio$Tca[i] > 3){
test[i] <- as.character(gio$Referee[i])
}
}
注意:我已将条件修改为大于3。
这将输出为
test
[1] NA "A Davies" NA "A Madley" "A Marriner" "A Taylor"
[7] "A Woolmer" NA "C Berry" "C Boyeson"
现在这些NA是因为你用NULL初始化并且只在满足条件的索引处放置值。
是一个更好的for循环test <- character()
for (i in c(1:length(gio$Referee))) {
if(gio$Tca[i] > 3){
test<-append(test,as.character(gio$Referee[i]))
}
}
这里我使用空字符数组初始化测试,并且我追加满足我条件的gio$Referee
中的值。这使输出为
test
[1] "A Davies" "A Madley" "A Marriner" "A Taylor" "A Woolmer" "C Berry"
[7] "C Boyeson"
高于一切,每个人都说过
您不需要循环来执行此操作
将数据框子集为
gio$Referee[gio$Tca>3]
这意味着从Referee
gio
gio$Tca
大于3
let quadruple x =
let double x =
x * 2