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

我有一个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        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