将前导零添加到列表并将修改后的值分配回数据框中的变量
adding leading zeros to a list AND assign the modified values back to the variable in the data frame
我正在使用的数据集是一个 .csv 文件,它有 13 列,其中 headers(粗体)和 302 行:id:1 ,2,..., 302), source_code: : AAA, BBB, CCC., 日期、日、月、年、时间、小时, 分, 秒, 纬度, 经度, 铭文: NA, 1 or 0.
我希望 ID 列 (1, 2, 3,...,302) 具有 3 位数字,必要时使用普遍的零 (001, 002, ..., 010, ..., 302).
这是我所做的:
data<-read.csv("C:/TFM/corrected_filtered_coordinates.csv")
str(data)
#'data.frame': 302 obs. of 13 variables:
#$ id : int 1 2 3 4 5 6 7 8 9 10 ...
data$id <- as.numeric(data$id)
sprintf("%03d", data$id)
#sprintf("%03d", data$id)
#[1] "001" "002" "003" "004" "005" "006" "007" "008" "009" "010"
str(data)
#'data.frame': 302 obs. of 13 variables:
#$ id : int 1 2 3 4 5 6 7 8 9 10 ...
到目前为止,我发现了 2 个可用的函数(在我 运行 其中一个之后,控制台中会出现一个包含转换后 ID 的列表):
formatC(data$id, width = 3, format = "d", flag = "0")
和
sprintf("%03d", data$id)
然而
当我使用 data
或 str(data)
显示这些函数中的任何一个 运行 后的数据时,ID 仍然没有前导零出现!
我尝试将 ID 更改为字符 #data$id <- as.character(data$id)
和数字 data$id <- as.numeric(data$id)
before 运行 函数...但没有似乎有效!
如何让 ID 保持更改? 我无法将修改后的值分配回数据框中的变量
提前致谢!!!
有点猜测,但听起来您未能将修改后的值分配回数据框中的变量。
dd <- data.frame(id=c(1,2,3,10))
dd$id <- sprintf("%03d", dd$id)
str(dd)
## 'data.frame': 4 obs. of 1 variable:
## $ id: chr "001" "002" "003" "010"
- 我使用
dd
而不是 data
作为数据框的名称; data
也是 R 中一个 built-in 函数的名称,最好避免使用
我正在使用的数据集是一个 .csv 文件,它有 13 列,其中 headers(粗体)和 302 行:id:1 ,2,..., 302), source_code: : AAA, BBB, CCC., 日期、日、月、年、时间、小时, 分, 秒, 纬度, 经度, 铭文: NA, 1 or 0.
我希望 ID 列 (1, 2, 3,...,302) 具有 3 位数字,必要时使用普遍的零 (001, 002, ..., 010, ..., 302).
这是我所做的:
data<-read.csv("C:/TFM/corrected_filtered_coordinates.csv")
str(data)
#'data.frame': 302 obs. of 13 variables:
#$ id : int 1 2 3 4 5 6 7 8 9 10 ...
data$id <- as.numeric(data$id)
sprintf("%03d", data$id)
#sprintf("%03d", data$id)
#[1] "001" "002" "003" "004" "005" "006" "007" "008" "009" "010"
str(data)
#'data.frame': 302 obs. of 13 variables:
#$ id : int 1 2 3 4 5 6 7 8 9 10 ...
到目前为止,我发现了 2 个可用的函数(在我 运行 其中一个之后,控制台中会出现一个包含转换后 ID 的列表):
formatC(data$id, width = 3, format = "d", flag = "0")
和
sprintf("%03d", data$id)
然而
当我使用 data
或 str(data)
显示这些函数中的任何一个 运行 后的数据时,ID 仍然没有前导零出现!
我尝试将 ID 更改为字符 #data$id <- as.character(data$id)
和数字 data$id <- as.numeric(data$id)
before 运行 函数...但没有似乎有效!
如何让 ID 保持更改? 我无法将修改后的值分配回数据框中的变量
提前致谢!!!
有点猜测,但听起来您未能将修改后的值分配回数据框中的变量。
dd <- data.frame(id=c(1,2,3,10))
dd$id <- sprintf("%03d", dd$id)
str(dd)
## 'data.frame': 4 obs. of 1 variable:
## $ id: chr "001" "002" "003" "010"
- 我使用
dd
而不是data
作为数据框的名称;data
也是 R 中一个 built-in 函数的名称,最好避免使用