R 更改列名,然后将所有负值转换为NA

R 更改列名,然后将所有负值转换为NA,r,names,R,Names,您好,我正在尝试将所有列名称更改为不同的名称,然后将所有包含负值的列向量转换为NA。第二部分我答对了,但由于某些原因,我无法正确地将列名更改为不同的名称。这是我的密码;请注意,mscr是csv,带有我希望更改的列名;我只是把它重命名为df2。谢谢你的时间和帮助 df2 <- mscr %>% rename( caseid = R0000100, children2000 = R6389600 ) df2 <- mscr df2[df2 < 0

您好,我正在尝试将所有列名称更改为不同的名称,然后将所有包含负值的列向量转换为NA。第二部分我答对了,但由于某些原因,我无法正确地将列名更改为不同的名称。这是我的密码;请注意,mscr是csv,带有我希望更改的列名;我只是把它重命名为df2。谢谢你的时间和帮助

df2 <- mscr %>%
  rename(
    caseid = R0000100,
    children2000 = R6389600
    )

df2 <- mscr
df2[df2 < 0] <- NA
df2%
改名(
caseid=R0000100,
儿童2000=6389600兰特
)

df2我可能会误解,但我认为您所做的是重命名列(成功),然后用原始数据重写新重命名的数据。就是

df2%重命名(…)
是正确的,然后应该更改名称。当你这样做的时候

df2%
变异(跨越(一切(),~if_-else(.<0,[NA],))

人们通常只想使用
NA
,但由于
NA
在技术上是一个
逻辑类,我推断您的数据是
数值类或
整数类,因此我们需要获得正确的类。一种选择是分别对
numeric
integer
列执行此步骤,我们将分别使用
NA\u real\u
NA\u integer\u
。但是,在这种情况下,
[NA]
将使
NA
分类为与原始列数据相同的类别。

第一部分的问题是什么更改名称,但不更改csv;mscr是一个csv文件。您需要使用
read.csv
读取数据,因此我先读取mscr.csv文件,然后将这些更改放入其中,但是,当我查看(mscr)时,我的更改都不可见。您将更改保存到df2中,而不是mscrI必须承认的,@IceCreamToucan,这看起来相当模糊。。。这是故意混淆(也许是开玩笑)还是在某个时候有必要?
[NA]
还有另外一个好处,那就是处理
字符
POSIXt
。我认为很多R用户倾向于对
base::ifelse
的类混乱感到满意,我们发现了各种各样的“乐趣”使用
dplyr::if_else
data.table::fifelse
实际强制实现类一致性。¯\_(ツ)_/¯