英文:
I want to change values below 60 in a column of my dataframe but values below 10 are not taken with it
问题
在名为 "CKD" 的列中,您想将所有小于60的值更改为 "Yes",大于等于60的值更改为 "No"。
但是,当您运行以下代码时:
Student_data_2$CKD[Student_data_2$CKD >= 60] <- "No"
Student_data_2$CKD[Student_data_2$CKD < 60] <- "Yes"
除了小于10的值之外,所有值都被更改为文本。这可能是因为小于10的值被视为字符而不是数字。要解决此问题,您可以将小于10的条件更改为字符串,并重新运行代码。这是修正后的代码:
Student_data_2$CKD[Student_data_2$CKD >= 60] <- "No"
Student_data_2$CKD[Student_data_2$CKD < "10"] <- "Yes"
现在,小于10的值应该正确地被更改为 "Yes"。
英文:
I have a dataset and i want to change values in my column to "No" and "Yes"
This is the dataset:
gender age creat eGFR CKD
1 1 20.75420 70.35006 66.77359 66.77359
2 1 40.48984 102.39087 37.64458 37.64458
4 1 38.91398 92.26064 43.07771 43.07771
5 1 27.57514 71.13583 63.15280 63.15280
6 0 51.90974 218.35305 10.57759 10.57759
7 1 25.56240 86.98399 50.23518 50.23518
In the column called "CKD" i want to change all the values below 60 to "Yes" and greater than or equal to CKD to "No".
However, when i run the following code:
Student_data_2$CKD[Student_data_2$CKD >= 60] <- "No"
Student_data_2$CKD[Student_data_2$CKD < 60] <- "Yes"
All values are changed except for the values below 10, they stay numeric. For example:
gender age creat eGFR CKD
1 1 20.75420 70.35006 66.773594 No
2 1 40.48984 102.39087 37.644583 Yes
4 1 38.91398 92.26064 43.077715 Yes
5 1 27.57514 71.13583 63.152798 No
15 0 42.27583 196.62734 12.735807 Yes
16 0 59.43180 185.07882 12.309281 Yes
17 1 21.16721 102.46636 42.413975 Yes
18 0 51.78945 131.65945 19.424971 Yes
19 0 61.89885 253.39297 8.314646 8.31464627872699
20 0 76.81865 215.07378 9.225582 9.22558204994784
22 0 53.63316 236.28427 9.519215 9.51921545447276
23 1 31.24610 93.35322 44.548002 Yes
Does anyone know what is the problem with my code?
答案1
得分: 4
当您运行第一行代码时,所有数字都会被转换为字符,因此您的第二行不会按预期运行。您需要创建一个新列或一次性完成整个比较。尝试这样做:
Student_data_2$CKD <- ifelse(Student_data_2$CKD >= 60, "No", "Yes")
英文:
As soon as you run your first line of code, all the numbers become converted to characters, so your second line isn't behaving as expected. You need to create a new column or do the entire comparison at once. Try this:
Student_data_2$CKD <- ifelse(Student_data_2$CKD >= 60, "No", "Yes")
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论