R 如何根据索引值提取列表位置
我有一个R数据帧:R 如何根据索引值提取列表位置,r,python-3.x,R,Python 3.x,我有一个R数据帧: df <- data.frame("a"= c("123-wave-hi","234-boo-low","563-hi-dsa","897-op-ghhs"), "b"= runif(4,2,10), "c"= runif(4,5,20)) 您不是只想从df$a中提取数字吗 df$idkey <- gsub("(\\d+).*", "\\1", df$a) a
df <- data.frame("a"= c("123-wave-hi","234-boo-low","563-hi-dsa","897-op-ghhs"),
"b"= runif(4,2,10),
"c"= runif(4,5,20))
您不是只想从
df$a
中提取数字吗
df$idkey <- gsub("(\\d+).*", "\\1", df$a)
a b c idkey
1 123-wave-hi 6.050167 12.22999 123
2 234-boo-low 5.919546 17.62619 234
3 563-hi-dsa 7.193291 12.70553 563
4 897-op-ghhs 8.646451 12.94666 897
df$idkey您不想从df$a
中提取数字吗
df$idkey <- gsub("(\\d+).*", "\\1", df$a)
a b c idkey
1 123-wave-hi 6.050167 12.22999 123
2 234-boo-low 5.919546 17.62619 234
3 563-hi-dsa 7.193291 12.70553 563
4 897-op-ghhs 8.646451 12.94666 897
df$idkey在熊猫中,您可以执行以下操作
import pandas as pd
import numpy as np
df = pd.DataFrame({"a":["123-wave-hi","234-boo-low","563-hi-dsa","897-op-ghhs"],
"b": range(2,6),
"c": range(7,11)})
df['idkey']= df['a'].str.split("-", expand=True)[0]
print( df )
输出:
a b c idkey
0 123-wave-hi 2 7 123
1 234-boo-low 3 8 234
2 563-hi-dsa 4 9 563
3 897-op-ghhs 5 10 897
在熊猫中你可以做到
import pandas as pd
import numpy as np
df = pd.DataFrame({"a":["123-wave-hi","234-boo-low","563-hi-dsa","897-op-ghhs"],
"b": range(2,6),
"c": range(7,11)})
df['idkey']= df['a'].str.split("-", expand=True)[0]
print( df )
输出:
a b c idkey
0 123-wave-hi 2 7 123
1 234-boo-low 3 8 234
2 563-hi-dsa 4 9 563
3 897-op-ghhs 5 10 897
甚至更简单,sub('-.'','',df$a)
或者更简单,sub('-.'','',df$a)
import pandas as pd
import numpy as np
df = pd.DataFrame({"a":["123-wave-hi","234-boo-low","563-hi-dsa","897-op-ghhs"],
"b": range(2,6),
"c": range(7,11)})
df['idkey']= df['a'].str.split("-", expand=True)[0]
print( df )
a b c idkey
0 123-wave-hi 2 7 123
1 234-boo-low 3 8 234
2 563-hi-dsa 4 9 563
3 897-op-ghhs 5 10 897