英文:
Convert temperature data from Kelvin to Celsius in multiple columns
问题
我有一个包含多列以开尔文表示的温度数据的数据集。我想将其转换为摄氏度。
Sr. StationID MaxTemp MinTemp MeanTemp Prec
1 5320 280 270 275 1.2
我正在使用以下代码来将其中一列(MaxTemp)转换为摄氏度。我想添加更多列的名称。
DF %>%
mutate(across(.cols = starts_with("MaxTemp"), .fns = function(x) x - 273.15))
英文:
I have a dataset with multiple columns of temperature data in Kelvin. I want to convert it to celsius.
Sr. StationID MaxTemp MinTemp MeanTemp Prec
1 5320 280 270 275 1.2
I am using this code which helps to convert only one column (MxTemp). I want to add more column names.
DF %>%
mutate(across(.cols = starts_with("MaxTemp"),.fns = function(x) x - 273.15))
答案1
得分: 0
你可以使用 ends_with
,而不是 starts_with
:
DF %>% mutate(across(.cols = ends_with("Temp"),.fns = function(x) x - 273.15))
英文:
instead of starts_with
, you could use ends_with
:
DF %>% mutate(across(.cols = ends_with("Temp"),.fns = function(x) x - 273.15))
答案2
得分: 0
使用data.table的解决方案
library(data.table)
setDT(DF) # 将其转换为data.table
tcols = grep("Temp", names(DF))
DF[, (tcols) := .SD - 273.15, .SDcols = tcols] # 列通过引用更新
如果您有任何其他问题,可以随时提出。
英文:
solution using data.table
library(data.table)
setDT(DF) # make it a data.table
tcols = grep("Temp", names(DF))
DF[, (tcols) := .SD - 273.15, .SDcols = tcols] # columns updated by reference
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论