【发布时间】:2015-12-02 22:57:42
【问题描述】:
我试图让最后一列从第 5 列获取数据。如果字符是“M”,它应该做某事,如果“F”是别的,这是我的代码:
wd="c:/users/Youssef/Documents/Fares/R/employes.txt";
setwd(wd);
employes=read.table("c:/users/Youssef/Documents/Fares/R/employes.txt", sep=" ")
employes["PRIMES"] <- NA
x = "M"
ifelse(employes$V3==x, employes$PRIMES <- employes$V5*2, employes$PRIMES <- employes$V5*3)
employes
这是我的文本文件:
AD5522 42 M 42000 10
BR4230 39 F 38000 12
CC0563 39 F 35000 14
DL3222 24 M 28000 2
EM0157 43 M 38000 15
FG5441 62 M 45000 28
GG0575 27 M 44000 4
HD4410 55 F 30000 2
IA1203 32 F 28000 4
JO9876 24 F 24000 2
KJ3481 42 M 40000 8
LL1101 34 M 42000 10
MM0157 56 M 87000 15
ZD5431 34 M 54000 28
SF0325 73 M 33000 4
LK4200 61 F 23000 2
PI1243 26 F 74000 4
NB9809 42 F 64000 2
XF3111 71 M 12000 8
AL1190 23 M 53000 10
我想要做的是创建一个名为 PRIMES 的新列,并将第 5 列的值加倍,如果是 M,则将其放在那里,如果是 F,则将其加倍。但是我的代码所做的是将所有内容加倍,就好像它只读取第一个 M 并将每个数字乘以 3 并将其放在 PRIMES 列上
【问题讨论】:
-
ifelse的语法不正确。 -
我认为前两行没用,所以不要介意
-
@Pascal 如果我打印 ("Male") 和打印 ("Female") 而不是替换列上的数据,它就可以工作。唯一的问题是它在打印整行之前会额外打印男性和女性 1 次。
-
查看下面的答案以了解正确的语法。
标签: r