[英]Replacing values of a column in R dataframe
我有一个名为 C0001 的数据框,其中包含 31 个变量的 3671 个观察值。 我想对一个名为 Y 的变量的每个值进行检查。如果该变量的值大于 30,则将其替换为 30,否则保留现有值。 我在 R 中写了以下内容,但它给了我一个错误:
C0001 <- read.csv("C0001.csv")
C0001$Y<- ifelse(C0001$Y > 30, 30, C0001$Y)
ans[npos] <- rep(no, length.out = len)[npos] 中的错误:替换长度为零另外:警告消息:在 rep(no, length.out = len) 中:'x' 是 NULL 所以结果将是 NULL
有人可以帮我解决我在这里犯的错误吗? 是否有其他方法可以在不使用 ifelse 的情况下执行相同的操作?
谢谢
像这样使用矢量化: C0001$Y <- C0001$Y[C0001$Y > 30]
尝试用read.csv()
read_csv()
检查您的核心工作目录。 read_csv()
function 将数据as a tibble
tibble 导入 R ,而read.csv()
导入常规的旧 R data frame
。 该错误表明您的输入是 NULL 或长度为 0 的向量:确保索引正确。
library(readr)
C0001 <- read_csv("C:/Users/Desktop//C0001.csv")
C0001
> C0001
# A tibble: 6 x 3
x y z
<dbl> <dbl> <dbl>
1 2 40 4
2 3 12 5
3 45 12 6
4 1 50 7
5 1 50 30
6 1 0 0
C0001$y<- ifelse(C0001$y > 30, 30, C0001$y)
C0001
# A tibble: 6 x 3
x y z
<dbl> <dbl> <dbl>
1 2 30 4
2 3 12 5
3 45 12 6
4 1 30 7
5 1 30 30
6 1 0 0
数据样本:
structure(list(x = c(2, 3, 45, 1, 1, 1), y = c(30, 12, 12, 30,
30, 0), z = c(4, 5, 6, 7, 30, 0)), row.names = c(NA, -6L), spec = structure(list(
cols = list(x = structure(list(), class = c("collector_double",
"collector")), y = structure(list(), class = c("collector_double",
"collector")), z = structure(list(), class = c("collector_double",
"collector"))), default = structure(list(), class = c("collector_guess",
"collector")), skip = 1L), class = "col_spec"), class = c("spec_tbl_df",
"tbl_df", "tbl", "data.frame"))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.